在c#的list集合的操作中,有时候我们需要根据相关条件快速从list集合中获取到第一个符合条件的实体对象,例如有个全校班级的list集合,我们需要根据班级代码快速从list集合中查找出班级信息。可以使用传统的for或者foreach循环来单独比对查询来实现,其实还可以通过lambda表达式中的firstordefault方法快速来查找,只需一条语句即可查找出来。

例如有个全校班级信息的list集合list<studentclass>  classlist,需要快速从classlist集合中查找班级代码classcode为a101的班级实体记录,可使用下列语句:

studentclass   whereclass=classlist.firstordefault(t=>t.classcode==”a101″);

上述语句中t是lambda表示式的一种写法,代表list集合里面的对象实体,你可命名为其他变量名也可以,例如a,b等。

如果list集合含有相应的符合条件的实体记录,则firstordefault返回查找到的第一条实体记录信息,否则firstordefault方法返回为null。

因此如果无法100%确保list集合中含有符合条件的记录,则需要在使用前判断是否为null。

上述lambda表达式也可以加入相应的函数以及多个条件,例如加入schoolname名称包含实验俩字的记录,可通过下列语句实现。

studentclass   whereclass=classlist.firstordefault(t=>t.classcode==”a101″&&t.schoolname.contain(“实验”));

 

备注:原文转载自c#使用firstordefault方法快速查找list集合中符合条件的第一个实体_it技术小趣屋。