2011-09-14 10 views

उत्तर

15

शायद सबसे आसान तरीका ToDictionary का उपयोग करके एक शब्दकोश बनाना होगा, और फिर SortedList<TKey, TValue>(dictionary) कन्स्ट्रक्टर को कॉल करें।

var list = people.ToSortedList(p => p.Name, 
           p => new { p.Name, p.Age }); 
4

आप IDictionary निर्माता का उपयोग करने की आवश्यकता होगी तो ToDictionary एक्सटेंशन का उपयोग:

public static SortedList<TKey, TValue> ToSortedList<TSource, TKey, TValue> 
    (this IEnumerable<TSource> source, 
    Func<TSource, TKey> keySelector, 
    Func<TSource, TValue> valueSelector) 
{ 
    // Argument checks elided 
    SortedList<TKey, TValue> ret = new SortedList<TKey, TValue>(); 
    foreach (var item in source) 
    { 
     // Will throw if the key already exists 
     ret.Add(keySelector(item), valueSelector(item)); 
    } 
    return ret; 
} 

यह आपको मूल्यों के रूप में गुमनाम प्रकार के साथ SortedList s बनाने के लिए अनुमति देगा: वैकल्पिक रूप से अपने स्वयं के एक्सटेंशन विधि जोड़ें अपनी linq क्वेरी पर विधि और फिर SortedList(dictionary);

उदाहरण का उपयोग करें

var list=new SortedList(query.ToDictionary(q=>q.KeyField,q=>q)); 
0

कुछ इस तरह बस ठीक काम करता है

List<MyEntity> list = DataSource.GetList<MyEntity>(); // whatever data you need to get 

SortedList<string, string> retList = new SortedList<string, string>(); 

list.ForEach (item => retList.Add (item.IdField, item.Description)); 
संबंधित मुद्दे