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

本文关键字:列表 项目 检查 | 更新日期: 2023-09-27 18:12:17

对于泛型列表,检查具有特定条件的项是否存在的最快方法是什么?如果存在,则选择它,而无需在列表中搜索两次:

例如:

if (list.Exists(item => item == ...))
{
    item = list.Find(item => item == ...)
    ....
}

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

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

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

如果你使用的是。net 3.5或更高版本,使用LINQ更习惯——同样,如果default(T)没有问题,你可以使用如下代码:

var item = list.FirstOrDefault(x => x....);
if (item != null)
{
    ...
}

使用LINQ可以让你在不改变代码的情况下从List<T>更改到其他集合

item = list.Find(item => item == ...);
if(null != item)
{
   //do whatever you want
}

您可以使用linq简单地做到这一点,只需在名称空间顶部添加使用System.Linq;

如果你想获得所有的结果:

var items = list.Where(item=>item.Id == giveID).ToList();

或者如果你只想要第一个结果;

var result = list.FirstOrDefault(item=>item.ID == givenID);

代替item.Id == givenID,您可以使用自己的标准。例如,如果item是字符串,你可以做item == "Test"或者如果是int,你可以做item == 5,…