Linq - Как выбрать элементы из списка, который содержит только элементы из другого списка?
У меня есть два класса:
public class Item
{
public int Id{get;set;}
public List<Test> TestList{get;set;}
}
public class Test
{
public int Id{get;set;}
public Item Item{get;set;}
public byte State{get;set;}
}
Данные класса изделия:
Id
1
2
3
И данные тестового класса:
Item State
1 1
1 2
1 3
2 1
2 4
3 2
Теперь мне нужно написать запрос, который выберет Предметы из моего класса, которые имеют состояние 1 и 2. Например, для приведенного выше примера он должен вернуть строку с Item = 3. я написал этот запрос:
var stateList=new List<byte>(){1,2};
Items.Where(x => x.TestList.Select(c => c.State).Any(s => stateList.Contains(s)));
но он возвращает Item = 1 либо. Любая идея?