Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据表查找项_C#_Datatable - Fatal编程技术网

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");