2016-04-04 4 views
-2

У меня есть список Fruit:Список Фильтр по пунктам в Array (LINQ)

List<Fruit> 

где Fruit имеет следующие свойства/поля:

id 
name 
color 

Дан массив целых чисел:

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

Как я могу отфильтровать свой список, чтобы он исключал фрукты, у которых id находится в массиве?

+1

Что вы пробовали? Здесь вы получите больше ответов, если вы можете показать код (даже если он не работает). –

+0

Возможный дубликат [Использование LINQ для удаления элементов из списка ] (http://stackoverflow.com/questions/853526/using-linq-to-remove-elements-from-a-listt) –

ответ

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

Обратите внимание, что это вернет новый фильтр IEnumerable<Fruit>; он не удалит элементы из исходного списка. Чтобы их удалить из списка, вы можете использовать вместо этого:

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

отлично! Спасибо! :-) –

Смежные вопросы