在多个列表中搜索具有特定标题的对象

本文关键字:标题 对象 列表 搜索 | 更新日期: 2023-09-27 18:03:59

我需要用对象遍历3个列表。每个列表中的每个对象都具有相同的结构。列表中的每个对象都有一个标题_objectTitle

这些是我的清单

List<Example> exampleList_1;
List<Example> exampleList_2;
List<Example> exampleList_3;

因此我需要遍历for循环中的所有列表所以exampleList_1[i] exampleList_2[i]…等等,看看其中是否有一个对象具有_objectTitle等于"string string string"。在这种情况下,所有标题都是唯一的,并且只能返回一个对象。

在多个列表中搜索具有特定标题的对象

如果项目在3个不同的列表中,最简单的方法是使用Concat()方法。

var found = exampleList_1.Concat(exampleList_2).Concat(exampleList_3).SingleOrDefault(e => e._objectTitle == "string string string");

这将返回一个单独的项目,标题设置为"string string string",如果没有找到,则返回NULL。

在搜索标题之前,您可以通过将列表连接在一起来同时搜索这三个列表:

var example = exampleList_1.Concat(exampleList_2)
                           .Concat(exampleList_3)
                           .SingleOrDefault(x => x._objectTitle == "someTitle");

你可以使用SingleOrDefault(),因为标题是唯一的,最多你期望一个匹配。

如果没有找到标题,则example将为null