2011-06-13 8 views
5

मैं एक चाबी अपने मूल्य, जिसके बाद से बना एक स्ट्रिंग बनाने के लिए इस तरह के स्ट्रिंग की तरह कुछ लग रहा है कि कोशिश कर रहा हूँ अब तक मैंने कॉन्सैट का उपयोग करने की कोशिश की है:मूल्यों के साथ कुंजी को कैसे संयोजित करें? मूल्य, कुंजी; मूल्य, कुंजी, मूल्य</p> </blockquote> <p>तो</p> <blockquote> <p>कुंजी:

var originalKeyValues = entity.ChangeTracker.OriginalValues.Keys.Concat(
    entity.ChangeTracker.OriginalValues.Values).ToString(); 

... लेकिन ऐसा लगता है कि मैं जो चाहता हूं उसे उत्पन्न नहीं करता है।

दोनों Keys और ValuesDictionary<string, object>

उत्तर

6
string result=list.Select(w=>w.Key+";"+w.Value).Aggregate((c,n)=>c+","+n); 
+0

खाली शब्दकोश को संभालने के लिए मैं इसे कैसे संशोधित करूं। कुल से चयन विभाजित करें? –

+0

यदि यह खाली है, तो बस कुछ भी न करें: 'स्ट्रिंग परिणाम = सूची। गणना> 0? सूची। चयन करें (w => w.Key + ";" + w.Value) .ggregate ((c, n) => सी + "," + n): ""; ' – Blindy

1
var originalKeyValues = entity.ChangeTracker.OriginalValues 
    .Select(OV => OV.Key + ";" + OV.Value) 
    .Aggregate((acc, next) => acc + "," + next)); 

मुझे लगता है कि (untested) कर रहे हैं।

+0

@ -1, मुझे गलत क्या मिला? –

2

मैं इस तरह करना होगा:

var x = new Dictionary<string, string> { { "key", "value" }, { "key2", "value2" } }; 

Console.WriteLine(
    String.Join(",", x.Select(d => String.Format("{0};{1}", d.Key, d.Value))) 
); 

शब्दकोश से तार का एक गणनीय चयन तो , द्वारा सूची में शामिल हो।

आउटपुट: key;value,key2;value2

1

ऊपर उल्लेख किया है लोगों को इसके अलावा:

result = (from a in list select a.Key + ";" + a.Value).Aggregate((current, next) => current + "," + next); 

हम भी LINQ का उपयोग किए बिना पाश के लिए सरल कोशिश कर सकते हैं:

foreach (KeyValuePair<String, String> a in list) 
      result += a.Key + ";" + a.Value + ","; 

या हम नेट का उपयोग कर सकते String.Join की 4 विशेषता:

result = String.Join(",", (from a in list select a.Key + ";" + a.Value)); 
संबंधित मुद्दे