我有一个数据表加载了一些记录,然后我从另一个文件中提取查询,并想检查我在此查询中提取的ID是否存在于我的数据表中。在DataTable上使用LINQ的.Any()
foreach (var item in records)
{
bool hasit = dt.AsEnumerable().Any(p => p.Field<string>(0) == item.ID);
if (!hasit)
{
//Logic
}
}
我使用。任何()函数,并期待它是否存在于在记录集的ID相匹配的数据表中的第一个字段的ID返回true。它不断返回假,我错过了什么?有一个更好的方法吗?
尝试设置一个空白枚举到dt.AsEnumerable的'()的结果。任何(p => p.Field(0)== item.ID);'看看你回来了什么。 –
bendataclear
也许把'!hasit'改成'hasit'? –
这对于'records'集合中的大量项目来说看起来相当不合适。你可以重写这个使用“where字段0包含在”记录集合“类型查询的”ID“列的列表中吗? – asawyer