DataTable查找项目

时间:2013-01-01 07:16:21

标签: c# datatable

我试图做这样的事情

 var names_en = dtTmp.AsEnumerable();
 var names = names_en.Where(a => a["ID"] == "1");
 string name = names["Name"].ToString();

我的目标是找到ID等于1的行,并将Name保留为字符串

我知道我有ID列我知道我有一行ID==1我在调试器中看到它。 但names允许枚举不产生任何结果。

还有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

如果使用强类型的DataRowExtension.Field方法,效果会更好。还要确保ID的类型为字符串,否则会出现异常。您可以相应地指定类型。

string name = dtTmp.AsEnumerable()
                .FirstOrDefault(r => r.Field<string>("ID") == "1")
                .Field<string>("Name");

答案 1 :(得分:0)

var names = names_en.Where(a => a["ID"] == "1"); 

返回结果列表,你必须得到第一条记录