2010-05-12 11 views
10

मान लीजिए कि मेरे पास Dictionary<String,String> है, और मैं इसके स्ट्रिंग प्रस्तुति का उत्पादन करना चाहता हूं। कर यह होगा की "पत्थर के औजार" जिस तरह से:.NET: <K,V> से एक स्ट्रिंग का उत्पादन करने का कुशल तरीका?

private static string DictionaryToString(Dictionary<String,String> hash) 
{ 
    var list = new List<String>(); 
    foreach (var kvp in hash) 
    { 
     list.Add(kvp.Key + ":" + kvp.Value); 
    } 
    var result = String.Join(", ", list.ToArray()); 
    return result; 
} 

वहाँ मौजूदा विस्तार तरीकों का उपयोग कर सी # में यह करने के लिए एक कारगर तरीका है?

मुझे सूची पर ConvertAll() और ForEach() विधियों के बारे में पता है, जिसका उपयोग foreach loops को खत्म करने के लिए किया जा सकता है। क्या ऐसी कोई विधि है जिसका उपयोग मैं वस्तुओं के माध्यम से फिर से करने के लिए शब्दकोश पर कर सकता हूं और जो चाहता हूं उसे पूरा कर सकता हूं?

+1

आप 'List' की क्षमता स्थापित करना चाहिए। – SLaks

उत्तर

17

नेट 4.0 में:

String.Join(", ", hash.Select(kvp => kvp.Key + ":" + kvp.Value)); 

नेट 3.5 में, आप .ToArray() जोड़ने की आवश्यकता होगी।

+0

एक दूसरे T_T द्वारा मारो --- अच्छा समाधान, काफी तेज़ और पढ़ने में बहुत आसान है। – mafu

5

ये रहा:


    public static class DictionaryExtensions 
    { 
     public static string DictionaryToString(this Dictionary<String, String> hash) 
     { 
      return String.Join(", ", hash.Select(kvp => kvp.Key + ":" + kvp.Value)); 
     } 
    } 
संबंधित मुद्दे