2011-04-11 14 views
6

मुझे लगता है कि मेरे सवाल का आसान है, लेकिन मैं LINQ में एक नौसिखिया हूँ में आइटम के साथ एक सूची ... सिवाय तो मैं एक कठिन समय यहाँLinq - एक और

मेरे प्रणाली एक सेवा कॉल आ रही है, कहा जाता है serviceTOP, जो मुझे itemTOP {Id, Name} की एक सूची देता है।

ये आइटम टीओपी मेरे सिस्टम में नहीं हैं, लेकिन उपयोगकर्ता चुन सकते हैं कि कौन सी आइटम टीओपी सिस्टम में आयात करने के लिए है।

आयातित ItemsTOP जब सिस्टम, serviceTOP कॉल उन्हें उपयोगकर्ता को दिखाने से पहले, मैं सूची से पहले से ही आयातित आइटम फिल्टर चाहिए, एक वस्तु Item { Id, IdTOP, Name }

तो हो जाता है।

के कोड में चलते हैं:

IList<ItemsTOP> listTOP = new ServiceTOP().GetItemsTOP(); 

IList<Items> list = new WCFServiceClient().GetItems(); 

var filteredListTOP = listTOP.Select(i => i.Id).Except(i => i.IdTOP); 

काम करता है इस तरह की है, लेकिन यह केवल आईडी युक्त स्ट्रिंग की एक सूची देता है।

मैं शीर्ष आईडी और नाम का चयन करना चाहता हूं।

अग्रिम धन्यवाद।

उत्तर

8

बदलें इस:

var filteredListTOP = listTOP.Select(i => i.Id).Except(i => i.IdTOP); 

इस के लिए:

var filteredListTOP = listTOP.Select(i => new { ID = i.id, Name = i.Name}).Except(i => i.IdTOP);