यह सबसे संक्षिप्त तरीके से मैं के बारे में सोच सकता है:
var result = string.Join(", ", map.Select(m => m.Key + ":" + m.Value).ToArray());
हालांकि, अपने परिस्थितियों के आधार पर , यह हो सकता हे तेजी से (हालांकि बहुत सुंदर नहीं):
var result = map.Aggregate(new StringBuilder(),
(a, b) => a.Append(", ").Append(b.Key).Append(":").Append(b.Value),
(a) => a.Remove(0, 2).ToString());
मैं पुनरावृत्तियों की एक अलग संख्या (10,000 से ऊपर के प्रत्येक भाग गया; 1000000; 10,000,000) आपके तीन-आइटम शब्दकोश और मेरे लैपटॉप पर, उत्तरार्द्ध औसतन 39% तेज था। 10 तत्वों के साथ एक शब्दकोश पर, उत्तरार्द्ध केवल 22% तेज था।
मेरा पहला उदाहरण में नोट करने के लिए, सरल स्ट्रिंग संयोजन एक अन्य बात यह है कि 38% mccow002's answer में string.Format()
भिन्नता की तुलना में तेजी थी, के रूप में मुझे लगता है यह संयोजन के स्थान पर एक छोटे स्ट्रिंग बिल्डर में फेंक रहा है, लगभग समान प्रदर्शन को देखते हुए मैट्रिक्स।
परिणाम स्ट्रिंग से मूल शब्दकोश बनाने के लिए, आप कुछ इस तरह कर सकता है:
var map = result.Split(',')
.Select(p => p.Trim().Split(':'))
.ToDictionary(p => p[0], p => p[1]);
स्रोत
2011-11-03 21:51:52
Didn ' मैंने पोस्ट करने से पहले तुम्हारा नहीं देखा। शानदार सोच के लिए +1 :) – mccow002
@CoryLarson आह, ठंडा। टिप्पणी: वापस ले लिया। – dlev
मैं इन var परिणाम से मूल शब्दकोश में वापस कैसे जा सकता हूं? – zipi