LINQ

2011-09-08 12 views
24

का उपयोग करके दो सूचियों के बीच अंतर प्राप्त करें मेरे पास दो सूचियां हैं और मुझे उनकी तुलना करने की आवश्यकता है और केवल उन वस्तुओं की सूची लौटाएं जो दोनों में नहीं हैं।LINQ

var listOfIds = new List<int> {1,2,4}; 

var persons = new ObservableCollection<Person> 
{ 
    new Person {Id = 1, Name = "Person 1"}, 
    new Person {Id = 2, Name = "Person 2"}, 
    new Person {Id = 3, Name = "Person 3"}, 
    new Person {Id = 4, Name = "Person 4"} 
}; 

इस उदाहरण में new Person {Id = 3, Name = "Person 3"} परिणाम होगा। एक लिंक समाधान को प्राथमिकता दी जाएगी।

उत्तर

38

नहीं में काम करेंगे आप

var listOfIds = new List<int> {1,2,4}; 

var query = from item in persons 
      where !listOfIds .Contains(item.id) 
      select item; 

आप और अधिक विस्तार के लिए जाँच कर सकते हैं के लिए: SQL to LINQ (Case 7 - Filter data by using IN and NOT IN clause)

+1

महान धन्यवाद, हमेशा भूल जाते हैं कि यह कैसे करना है :-) – gulbaek

28

तुम भी लैम्ब्डा उपयोग कर सकते हैं:

var query = persons.Where(item => !listOfIds.Contains(item.Id)); 
संबंधित मुद्दे

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