0

列 A = "123" で見つけた最初の行の列 B の値を取得したいと考えています。

私は試した:

dataTable.AsEnumerable().Select(row => row["value"].ToString() == "123").ToString();

しかし、私はExpression cannot contain lambda expressions を取得しています。

どんな助けでも感謝します、ありがとう。

編集:

私は基本的に次のSQLに相当するものを探しています:

Select ColumnB
From MyTable
Where ColumnA = '123'

ラムダ式を使用するデータテーブルの場合。

4

2 に答える 2

1

FirstOrDefault方法を見てください:

var foundRow = dataTable.AsEnumerable().FirstOrDefault(row => string.Equals (row["ColumnA"].ToString(), "123", StringComparison.OrdinalIgnoreCase ));
if (foundRow != null) {
    // We found a match, do something with it.
    var colBValue = foundRow["ColumnB"].ToString(); 
}

FirstOrDefault指定された基準に一致する最初の要素を返します。この場合、DataTableの[ColumnA]列で文字列「123」を検索します。基準に一致する要素がない場合はFirstOrDefault、DataTableのオブジェクトのデフォルト値を返しますnull

なぜあなたがあなたが示す例外を受け取っているのか分かりません、私がそれを再現しようとしたとき私は知りませんでした。

于 2012-07-27T05:25:40.900 に答える
0

Where私はあなたが方法を探していると信じています

dataTable.AsEnumerable().Select(row=>row["Value"].ToString()).Where(row => row["value"].ToString() == "123");
于 2012-07-26T20:09:18.057 に答える