LINQ - свойство массива содержит элемент от другого массива

У меня есть объект (продукт) со свойством типа 'массив'
например, product.tags = {"tag1", "tag2", "tag9"}

У меня есть массив входных тегов для фильтрации на.

... но это является не совсем рабочим:

List<string> filterTags = new List<string>() { "tag1", "tag3" };

var matches = from p in products
  where p.Tags.Contains(filterTags)
  select p;

Какие-либо рекомендации?Спасибо.

12
задан Ahmad Mageed 29 March 2010 в 16:23
поделиться

1 ответ

Чего на самом деле предназначен Contains ? Все ли элементы в Теги должны существовать в filterTags ? Или хотя бы один из них? Для последнего используйте Any , а для первого используйте All . Ваша строка где изменится на:

where p.Tags.Any(tag => filterTags.Contains(tag))

или

where p.Tags.All(tag => filterTags.Contains(tag))
28
ответ дан 2 December 2019 в 05:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: