2011-01-06 15 views
10

से विशिष्ट संपत्ति मान प्राप्त करें मैं एक सूची से अलग पूर्ण नाम प्राप्त करने की कोशिश कर रहा हूं जिसमें पूर्ण नाम और आईडी हैं, फिर इन्हें सूची में प्रदर्शित करना बॉक्स नियंत्रण। क्या ऐसा करने का कोई आसान तरीका है? धन्यवाद बेनसूची

using (DB2DataReader dr = command.ExecuteReader()) 
      { 
       while (dr.Read()) 
       { 

       Contact contact = new Contact(); 

       contact.ContactID = Convert.ToInt32(dr["CONTACT_ID"]); 
       contact.FullName= dr["FULL_NAME"].ToString(); 


       myContacts.Add(contact); 

       //contactsListBox.ItemsSource = myContacts.Distinct FullName?? 


      } 
     } 

उत्तर

16

LINQ के साथ:

var uniqueNames = myContacts.Select(c => c.FullName).Distinct().ToList(); 

काम करना चाहिए। यदि आदेश महत्वहीन है आप भी इस्तेमाल कर सकते हैं:

var names = new HashSet<string>(); 
while(dr.Read()) { 
    ... 
    names.Add(contact.FullName); 
} 

(और उसके बाद का उपयोग ToList()/OrderBy जो कुछ भी आप की जरूरत है)

+0

बहुत बहुत धन्यवाद! और आइटम्ससोर्स के बारे में कैसे सेट किया जाना चाहिए? – Ben

+0

संभावित रूप से अद्वितीय नाम। मैं इस समय की जांच नहीं कर सकता हालांकि –

+0

धन्यवाद मैंने कोशिश की थी लेकिन इसके साथ कोई भाग्य नहीं खेलेंगे। – Ben

0

मुझे लगता है कि तुम यहाँ विभिन्न तरीकों का उपयोग कर सकते हैं:

  1. Sql बनाओ क्वेरी जो अलग-अलग मानों से पूछती है।

  2. उस सूची को पहले से ही सूची में देखें। यह दृष्टिकोण मानता है कि आपकी कक्षा को यूक्लिटी ऑपरेटर को फिर से परिभाषित करना होगा। या आप जांच सकते हैं कि यह संपर्क आईडी पहले ही सूची में है।

  3. उपरोक्त वर्णित लिंक क्वेरी का उपयोग करें।

+0

चीयर्स मैं लिंक विकल्प के लिए गया था – Ben