C# 数据表查找项
我正试着做这样的事情C# 数据表查找项,c#,datatable,C#,Datatable,我正试着做这样的事情 var names_en = dtTmp.AsEnumerable(); var names = names_en.Where(a => a["ID"] == "1"); string name = names["Name"].ToString(); 我的目标是找到ID等于1的行,并将名称保持为字符串 我知道我有IDcolumn我知道我有一行,其中ID==1我在调试器中看到它。 但是names允许枚举不产生结果 还有更好的方法吗?如果使用强类型的方法会更好。还
var names_en = dtTmp.AsEnumerable();
var names = names_en.Where(a => a["ID"] == "1");
string name = names["Name"].ToString();
我的目标是找到ID
等于1
的行,并将名称保持为字符串
我知道我有ID
column我知道我有一行,其中ID==1
我在调试器中看到它。
但是names
允许枚举不产生结果
还有更好的方法吗?如果使用强类型的方法会更好。还要确保ID
的类型为string,否则会出现异常。您可以相应地指定类型
string name = dtTmp.AsEnumerable()
.FirstOrDefault(r => r.Field<string>("ID") == "1")
.Field<string>("Name");
string name=dtTmp.AsEnumerable()
.FirstOrDefault(r=>r.Field(“ID”)=“1”)
.字段(“名称”);
返回必须获得第一条记录的结果列表try:var names=names\u en.其中(a=>a[“ID”].equals(“1”)代码> @罗南-我认为把ID看作是数字而不是字符串是很好的……@ NahumLitvin,我只能猜测,但是我相信你不能编译你现有的代码。集合上不允许使用代码>名称[“名称”]
。您可以尝试names\u en.Where(a=>a[“ID”]==“1”).First()代码>在前面的一行,然后它应该可以工作,或者另一个原因可能是您的ID类型为int
,并且当前表单中的比较不会返回任何结果,因为您将它与字符串进行比较
var names = names_en.Where(a => a["ID"] == "1");