Day2day Opportunism

まぁ、平たく言うと「雑記」がだらだらと・・・

LINQ を DataTableに使用

今回のプロジェクトでは、ちょいちょいLINQを使っているんで、

DataTable 相手に使おうとしたら、エラー出されて困惑・・・

(いや、DataView使えばいいんだけどね)

 

調べた。

 

LINQの対象は 「IEnumerable(Of T) ジェネリック インターフェイス」を実装した

データーソースであると。

DataTableさんは、そのままでは”IEnumerable(Of T) ジェネリック インターフェイス”を

持ってない。

 

解決策は、MSDNにありました。

LINQ to DataSet でのクエリ

 

つまるところ、AsEnumerable 付ければOK!てなことなんで、やってみた。

Dim datas = From dt In value.dispMenuModel.menus.AsEnumerable _
Where dt("pgId1").ToString = reqArr(1) And dt("pgId2").ToString = amArr(0) Select dt

 

無事取得。

 

  If datas IsNot Nothing AndAlso datas.Count > 0 Then
    if datas(0)("funcId").ToString = FUNC_ID Then
      一致していた場合の処理 ・・・
    End If
  End If

 

こんな感じで、使えました。

(該当は、あれば1件しかないという記述なんで、レコード番号は固定ですけどね)