我有一個數據表加載了一些記錄,然後我從另一個文件中提取查詢,並想檢查我在此查詢中提取的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