无法通过Google或SO问题找到这个......
我的表单上有一个复选框列表框。我想通过列表框中选中的ID列表来过滤我的列表,在SQL中我会这样做,如“Where 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
CheckboxList中的选定类型2和3:filteredColors
filteredResults = (From C In WorkItemMonitor Where ????).ToList()
filteredResults中的预期项目将是: [3,格林,2],[4,粉红色,3]
编辑: 我的当前查询..(抱歉被告知这将是一个列表,原来是我正在过滤的数据表)
Dim workItemsListing As DataTable
workItemsListing = (From L In WorkItemMonitor.AsEnumerable() _
Where clbStatus.CheckedItems.Contains(L.Item("CurrentStatusId"))).CopyToDataTable()
答案 0 :(得分:3)
List<CurrentColor> colors = chkListCurrentColors.CheckedItems.Cast<CurrentColor> ();
filteredResults = (From C In WorkItemMonitor colors.Contains(C.TypeId)).ToList()
这就是我能用你的描述做的最好的事情。如果您需要更多帮助,则需要显示您添加到CheckedListBox的内容以及颜色类型。