在使用之前检查通用列表中的项目

Ger*_*ell 5 c# linq list

使用通用List,检查具有特定条件的项是否存在的最快方法是什么,如果存在,则选择它,而不在列表中搜索两次:

例如:

if (list.Exists(item => item == ...))
{
    item = list.Find(item => item == ...)
    ....
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 5

使用Find一次并比较结果default(T),或者如果default(T)可能是项目本身,使用FindIndex并检查索引是否为-1:

int index = list.FindIndex(x => x...);
if (index != -1)
{
    var item = list[index];
    // ...
}
Run Code Online (Sandbox Code Playgroud)

如果您使用的是.NET 3.5或更高版本,那么使用LINQ更为惯用 - 再次,如果default(T)不是问题,您可以使用以下内容:

var item = list.FirstOrDefault(x => x....);
if (item != null)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

使用LINQ可以让您List<T>稍后更改为其他集合而无需更改代码.


Har*_*san 5

item = list.Find(item => item == ...);
if(null != item)
{
   //do whatever you want
}
Run Code Online (Sandbox Code Playgroud)