最近在做项目的时候遇到这样一个需求:
我从数据库中取出了一组列表ListA,现在想要从该列表ListA中取出其子列表ListB。ListB满足一定的条件。
然后再从ListB中取出满足指定条件的一个实体Entity。
第一次遇到,感觉似乎从数据库中直接取子集合不好,会调用N多次数据库。那怎么办呢?
翻看List的VS编辑器提示选项,发现有个FindAll的方法,似乎是返回子集合的。Find方法返回单个对象。
就试着用了下,唉,发现还真是那么回事。
大致步骤是这样的:
……取出ListA代码…… ------》ListA(假设为entityA的list的父list)
foreach(EntityN entityN in entityNList)
{
……具体其他操作……
List<EntityA> ListB= ListA.FindAll(
(EntityA entity) => { return entity.某个条件 == entityN .某个条件;}
).ToList<EntityA>();
------》ListB(假设为ListB,我们要的子list)
……具体其他操作……
EntityA entityA = ListB.Find((EntityA entitya) => { return 某个需要满足的布尔值条件; });
------》entityA(假设为entityA ,我们要的最终单个对象)
……具体其他操作……
}
好了,基本就是上面的格式。
要注意的是 “{” “}” 内放的是return语句,最后要用一个分号“:”结束。