通过DataTable迭代查找List对象中的元素?

Dar*_*ent 5 c# asp.net datatable datarow generic-list

当我遍历DataTable对象时,我需要针对通用字符串List中的项检查每个DataRow对象.

我发现了一个使用List的Find方法和一个委托的博客帖子,但是那个例子有一个单独的类(Person),我正在使用字符串对象的实例尝试类似下面的内容:

// My definition of the List object.
List<string> lstAccountNumbers = new List<string>();
...

// I populate the List via its Add method.
...

foreach (DataRow drCurrentRow in dtMyDataTable.Rows) 
{
    if (lstAccounts.Find(delegate(string sAccountNumber) { return sAccountNumber == drCurrentRow["AccountNumber"]; })
    {
        Found_DoSomething();
    }
    else
    {
        NotFound_DoSomethingElse();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,使用这种语法我收到"不能隐式地将类型'字符串'转换为'bool'"作为if块.

有人可以澄清我做错了什么以及如何最好地完成我想要做的事情?

Ant*_*ony 3

相同的委托不同的方法。您想使用“Exists Not Find”。Find 返回值,exists 返回布尔值。

if (lstAccounts.Exists(delegate(string sAccountNumber) { return sAccountNumber == drCurrentRow["AccountNumber"]; })
Run Code Online (Sandbox Code Playgroud)