Поиск списка в списке по условию
У меня есть список matrix. Каждый элемента списка содержит несколько списков Items. Мне необходимо сделать поиск нужного списка Items по условию: найти список, в котором все три элемента будут соответствовать заданным. Например надо найти список Item, в котором будут содержаться элементы где Status = Approve и ApproveWithCondition и Approve. Где Status = Approve и Reject и Reject. Как это можно реализовать с помощью Linq?
public class Item
{
public string Status;
}
Коллекция
var matrix = new List<List<Item>>()
{
new List<Item>()
{
new Item(){ Status = "Approve"},
new Item(){ Status = "Approve"},
new Item(){ Status = "Approve"}
},
new List<Item>()
{
new Item(){ Status = "Approve"},
new Item(){ Status = "ApproveWithCondition"},
new Item(){ Status = "Approve"}
},
new List<Item>()
{
new Item(){ Status = "Reject"},
new Item(){ Status = "Reject"},
new Item(){ Status = "Reject"}
},
new List<Item>()
{
new Item(){ Status = "Approve"},
new Item(){ Status = "Reject"},
new Item(){ Status = "Reject"}
}
};
Ответы (1 шт):
Автор решения: Vitaliy Zlobin
→ Ссылка
Все Approve:
var result = matrix.Where(e => e.All(i => i.Status == "Approve"));
Все Approve/ApproveWithCondition
var result = matrix.Where(e => e.All(i => i.Status == "Approve" || i.Status == "ApproveWithCondition"));