2016-04-04 13 views
-2

(LINQ): Fruit aşağıdaki özellikleri/alanları vardırFiltre Liste ben <code>Fruit</code> listesi var

List<Fruit> 

:

id 
name 
color 

tamsayılar dizisi Verilen:

int[] ids = new [] {1,2,8}; 

Listemi,numaralı meyveleri hariç tutacak şekilde nasıl filtreleyebilirim?dizide mi?

+1

Şimdiye kadar ne denediniz? Bazı kodları gösterebiliyorsanız daha fazla yanıt alırsınız (çalışmazsa bile). –

+0

[ Listesinden öğeleri kaldırmak için LINQ kullanma] 'nın olası yinelenmesi (http://stackoverflow.com/questions/853526/using-linq-to-remove-elements-from-a-listt) –

cevap

1
var l = new List<Fruit>(); 
var exceptions = new int[] {1,2,8}; 
var filtered = l.Where(x=> !exceptions.Contains(x.id)); 

Bu, filtrelenmiş yeni bir IEnumerable<Fruit>; Orijinal listeden öğeleri kaldırmaz. Bunları gerçekten listeden kaldırmak için, aşağıdakileri kullanabilirsiniz:

l.RemoveAll(x => exceptions.Contains(x.id)); 
+0

Mükemmel! Teşekkür ederim! :-) –

İlgili konular