2010-10-19 26 views
64

में सूची को कनवर्ट करें मुझे शब्दकोश सूची में कनवर्ट करने का प्रयास करते समय समस्या है।शब्दकोश को सूची में कनवर्ट करने के लिए C#

उदाहरण यदि मेरे पास टेम्पलेट स्ट्रिंग के साथ कुंजी और स्ट्रिंग के रूप में शब्द है। फिर मैं स्ट्रिंग के रूप में सूची संग्रह में शब्दकोश कुंजी को कनवर्ट करना चाहता हूं।

Dictionary<string, string> dicNumber = new Dictionary<string, string>(); 
List<string> listNumber = new List<string>(); 

dicNumber.Add("1", "First"); 
dicNumber.Add("2", "Second"); 
dicNumber.Add("3", "Third"); 

// So the code may something look like this 
//listNumber = dicNumber.Select(??????); 
+5

क्या आप शब्दकोश से कुंजी की एक सूची के लिए पूछ रहे हैं? यदि ऐसा है तो शब्दकोश पर एक कुंजी संपत्ति है जो आपको वह देगी। –

उत्तर

123

उनकी खुद की एक सूची के लिए कुंजी बदलने के लिए:

listNumber = dicNumber.Select(kvp => kvp.Key).ToList(); 

या आप छोटा कर सकते हैं इसे चुनकर और भी परेशान न करें:

listNumber = dicNumber.Keys.ToList(); 
+0

@ ब्रायन - मैं अपने संपादन में वहां जा रहा था। मैं पहले चुनिंदा विधि दिखाना चाहता था क्योंकि ओपी ने यही पूछा था और फिर विकल्प दिखाया था। :-) –

+0

तो मैंने सोचा, इसलिए मैंने अपनी टिप्पणी हटा दी। –

+1

यह वास्तव में सहायक था। मुझे आवेदन करने की आवश्यकता थी। कुंजी (...) कुंजी को वापस करने से पहले निर्देश में, लेकिन वह विधि एक शब्दकोश नहीं लौटाती है, इसलिए मैं कुंजी गुण तक नहीं पहुंच सका। महान –

12

आप Linq उपयोग करने के लिए तो आप निम्नलिखित स्निपेट का उपयोग कर सकते चाहते हैं:

var listNumber = dicNumber.Keys.ToList(); 
4
foreach (var item in dicNumber) 
{ 

    listnumber.Add (item.Key); 

} 
+0

पर काम करने के बाद इस चयन का उपयोग करके अंत में क्यों नहीं :) –

17
वैकल्पिक रूप से

:

var keys = new List<string>(dicNumber.Keys); 
+1

.NET कॉम्पैक्ट फ्रेमवर्क 2.0 (इसलिए कोई लिंक) के साथ काम करना यह मेरे लिए सबसे अच्छा विकल्प था। –

3

यू एक विधि बहस में शब्दकोश कुंजी संग्रह पास करना चाहते हैं।

List<string> lstKeys = Dict.Keys; 
Methodname(lstKeys); 
------------------- 
void MethodName(List<String> lstkeys) 
{ 
    `enter code here` 
    //Do ur task 
} 
3

आप कुंजी परिवर्तित करना चाहते हैं:-एस NumberClass पहले रिकॉर्ड के लिए जहां

List<string> listNumber = dicNumber.Values.ToList(); 
-1
class NumberClass { 
    int Digits { get; set; } 
    string Chars { get; set; } 
    string CharsLower { get; set; } 
} 

var dicNumber = new Dictionary<string, string> { 
    {"1", "First"}, 
    {"2", "Second"}, 
    {"3", "Third"} 
} 

var listNumber = dicNumber.Select(number => new NumberClass { 
    Digits = Convert.ToInt32(number.Key), 
    Chars = number.Value, 
    CharsLower = number.Value.ToLower() 
}).ToList(); 

listNumber की एक सूची है:

List<string> listNumber = dicNumber.Keys.ToList(); 
बाकी

yuo मान परिवर्तित करना चाहते हैं अंक 1 के बराबर होते हैं, चार्स "पहले" के बराबर होते हैं और चार्सलोवर बराबर "पहले"

संबंधित मुद्दे