我有一个集合A,比如说100件。我要从该列表中执行一个where子句,该子句可以排除20个项目。
是否可以在项目上使用Select子句或其他方式,我可以使用返回2个项目的外部方法。
我需要从原始列表中获得160个对象。
我目前拥有的是
public List<A> ToAList(B item)
{
return new List<A> {new A(), new A()};
}
如果我打这个电话
originalList.Where(x => true).Select(y => ToAList(y)).ToList();
最后我得到了80个(从伪示例中)两个项目A的列表,而不是包含160个对象A的列表。
我正在寻找一种避免循环的方法。只是普通的Select或AddRange技巧可能会导致一个列表。
答案 0 :(得分:2)
您可以使用SelectMany
:
originalList.Where(x => true).SelectMany(y => ToAList(y)).ToList();