我有一个项目列表列表,我想知道是否有人可以帮助我使用 lambda 表达式来过滤此列表。
我的清单如下:
List<List<Item>> myList = ExtractList();
我的 Item 类如下所示:
public class Item {
public string Name {get;set;}
public string Action {get;set;}
}
我想过滤此列表并仅获取项目名称 =“ABC”且项目操作 =“123”的项目列表列表。
谢谢你的帮助
Simple:
myList.SelectMany(sublist => sublist)
.Where(item => item.Name == "ABC" && item.Action == "123");
这将为您提供所有列表中的所有项目。
如果您想选择包含该项目的子列表:
myList.Where(sublist => sublist.Any(item => item.Name == "ABC" && item.Action == "123"));
最后,如果您想保留相同的结构但只保留与过滤器匹配的项目:
var newList = myList.Select(sublist => sublist
.Where(item => item.Name == "ABC" && item.Action == "123")
.ToList()).ToList();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)