我正在学习LINQ,希望能帮助下面的方法。我如何重写下面的方法来使用LINQ?LINQ等价于下面的代码?
private bool IsInList(string file, List<FileInfo> excelList)
{
if (excelList != null && excelList.Count > 0)
{
foreach (FileInfo f in excelList)
{
if (string.Compare(f.FullName, file, StringComparison.OrdinalIgnoreCase) == 0)
{
return true;
}
}
}
return false;
}
从技术上讲,这不是等价的:当FullName为null时,您的代码可能会引发异常,原来的代码不会。 – ChrisWue 2011-05-20 03:38:00
谢谢,我喜欢单线。出于某种原因,我试图用Where()来做到这一点。我只是跳进LINQ,感谢您的快速回复。 – linqlearner 2011-05-20 03:42:32
@Chris:我已经想过了,得出的结论是'FullName'永远不会是'null'。我很确定是这样。对我而言,没有任何理由让他们在任何情况下都返回null。否则,使用静态相等比较器将是一个简单的修复。 – 2011-05-20 03:45:57