我希望在第一行找到列B的值,列A =“123”。
我试过了:
dataTable.AsEnumerable().Select(row => row["value"].ToString() == "123").ToString();
但我得到表达式不能包含lambda表达式。
任何帮助将不胜感激,谢谢。
编辑:
我基本上在寻找SQL的等价物:
Select ColumnB
From MyTable
Where ColumnA = '123'
对于使用lambda表达式的数据表。
答案 0 :(得分:1)
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
。
我不知道你为什么会得到你所展示的例外,当我试图重现它时我没有。
答案 1 :(得分:0)
我相信您正在寻找Where
方法
dataTable.AsEnumerable().Select(row=>row["Value"].ToString()).Where(row => row["value"].ToString() == "123");