LINQ Запрос на фильтрацию по выбранным элементам в списке флажков - PullRequest
1 голос
/ 01 июля 2011

Не удалось найти это через Google или в SO вопросах ...

В моей форме есть флажок со списком. Я хочу отфильтровать свой список по списку выбранных идентификаторов из этого списка, которые отмечены, в SQL я бы сделал это как "Где TypeId In (1, 4, 5, 7)" ... как мне сделать это в LINQ?

Я чувствую, что упускаю действительно очевидный ответ, но не могу его получить.

Ради аргумента ... вот что у меня есть для примерных данных:

In Colors (List<of currentColors>)
ID, Name, TypeId
1, Red, 1
2, Blue, 1
3, Green, 2
4, Pink, 3

Выбранные типы 2 и 3 в CheckboxList: FilterColors

filteredResults = (From C In WorkItemMonitor Where ????).ToList()

Ожидаемые элементы в FilterResults будут: [3, зеленый, 2], [4, розовый, 3]

EDIT: Мой текущий запрос .. (извините, мне сказали, что это будет список, оказывается, что я фильтрую данные)

Dim workItemsListing As DataTable
workItemsListing = (From L In WorkItemMonitor.AsEnumerable() _
Where clbStatus.CheckedItems.Contains(L.Item("CurrentStatusId"))).CopyToDataTable()

1 Ответ

3 голосов
/ 01 июля 2011
List<CurrentColor> colors = chkListCurrentColors.CheckedItems.Cast<CurrentColor> ();
filteredResults = (From C In WorkItemMonitor colors.Contains(C.TypeId)).ToList()

Это самое лучшее, что я могу сделать с твоим описанием.Если вам нужна дополнительная помощь, вам нужно показать, что вы добавляете в CheckedListBox, и тип ваших цветов.

...