2011-06-30 14 views
1

Googleまたはその他の質問を通じて見つからなかった...LINQチェックボックスリストの選択項目によるフィルタの照会

私のフォームにチェックボックスのリストボックスがあります。私はチェックされているそのリストボックスから選択されたIDのリストによって私のリストをフィルタリングしたいと思う、SQLでは "Where TypeId In(1、4、5、7)"のようにしていただろう... LINQ?

私は本当に明白な答えを見逃しているように感じますが、それを得ることはできません。

引数便宜上

...ここで私は、サンプルデータのために持っているもの:CheckBoxListの中

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

選択されたタイプ2と3:filteredColors

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

期待のアイテムは、次のようになります。 [3、緑、2]、[4、ピンク、3]

編集: 私の現在のクエリ..申し訳ありませんでしたが、私はあなたの説明にできる最善のことだ、私はフィルタリングしていたDataTable)

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

答えて

3
List<CurrentColor> colors = chkListCurrentColors.CheckedItems.Cast<CurrentColor>(); 
filteredResults = (From C In WorkItemMonitor colors.Contains(C.TypeId)).ToList() 

。さらにヘルプが必要な場合は、CheckedListBoxに何を追加するか、色の種類を表示する必要があります。

+0

私はそれをどのようにして知っていますか? – RiddlerDev

+0

詳細については、残念ながら私はこれに取り組んでいたときに変更を加えました...私はそれが近いと思いますが、両方のオブジェクトにアイテムがありますが、 "ソースにはDataRowが含まれていません"これは、CheckedItemsコレクションをデータテーブルにキャストする必要があるためですか? – RiddlerDev

+1

clbStatus.CheckedItemsの値のタイプは何ですか? 'clbStatus.CheckedItems(0).GetType()'それをその型にキャストする必要があります。 –

関連する問題