Как бы вы цепочки «Where» в linq в соответствии с различными состояниями переменных. E, g; (21-30, 31-40, 41-50, 51-60, 60>)Цепочка Linq Where clauses
У нас есть List<People>
«Люди», и мы должны отфильтровать его в соответствии с отмеченными ячейками. Если предположить, что список не может быть просто IEnumerable, как это было оценено
Помимо этого делать:
List<People> filteredPeople = new List<people>();
if(CB1.checked)
filteredPeople = filteredPeople.Union(People.Where(inTheirTwenties)) //assuming method inTheir20s filters correct
if(CB2.checked)
filteredPeople = filteredPeople.Union(People.Where(inTheirThirties)) ;
//...and so on
есть лучший способ обойти это?
Почему 'Union'? Вы можете непосредственно применить метод 'Where'' filterPeople = filtPeople.Where (p => p.Age> = 21 && p.Age <= 30) ' –
В списке реализована' IEnumerable', на самом деле есть очень коллекции представлений что нет. Таким образом, он может и есть ли он был оценен или нет. Вы думаете о 'IQueryable' –
Этот код только что сломан. Проверка CB1 и CB2 не вернет оба 20 и 30 секунд. Поскольку вы меняете 'filtersPeople' между вызовами. Фактически, ваш код в настоящее время возвращает ВСЕ людей «независимо». – Aron