Я пытаюсь найти лучший подход к фильтрации списка с помощью C # (3.5), но я не могу найти какие-либо примеры, похожие на мою ситуацию.Я открыт для использования лямбды или linq.
Уникальность по сравнению с большинством примеров, которые я обнаружил, заключается в том, что каждый элемент моего списка имеет дочерние массивы, например ...
var employees= new List<Employee>
{
new Employee{Name = "John",Nicknames="'J','Big J','Big John'"},
new Employee{Name = "Joshua",Nicknames="'J','Josh','Joshman'"},
}
Я бы тогдахотел бы отфильтровать этот список примерно так ...
//using linq
var matchesByNickname =
from worker in employees
where worker.Nicknames.Equals("J")
select worker;
//or lambda
var employees2 = employees
.Where(e => Nicknames.Exists(n => n.Nickname == "J"))
Но, разумеется, поскольку псевдонимы сами по себе являются массивом, я не могу использовать .Equals или .Contains и т. д. Что было бы наилучшим подходом для фильтрации спискаэтот тип?
ОБНОВЛЕНИЕ: пытаясь сделать мой пример простым, я немного ввел вас в заблуждение.Элементы списка имеют настоящие объектные массивы, а не строки.Мой пример из реального мира - это список пользовательских объектов продукта.Объект продукта имеет свойство Regions, представляющее собой список объектов Region.Продукт может иметь ни одного, 1 или более 1 региона.Объект региона имеет имя и идентификатор.Поэтому я действительно хочу отфильтровать список продуктов для любого продукта, назначенного определенному региону.