使用 linq 将列表附加到 select 方法中的列表
Using linq to append list to list from select method
我有一个集合 A,假设有 100 个项目。从该列表中,我想执行一个可以排除比方说 20 个项目的 where 子句。
有没有办法在项目上使用 Select 子句或其他东西,我可以在其中使用外部方法 returns 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 技巧,可能会产生一个列表。
您可以使用 SelectMany
:
originalList.Where(x => true).SelectMany(y => ToAList(y)).ToList();
我有一个集合 A,假设有 100 个项目。从该列表中,我想执行一个可以排除比方说 20 个项目的 where 子句。
有没有办法在项目上使用 Select 子句或其他东西,我可以在其中使用外部方法 returns 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 技巧,可能会产生一个列表。
您可以使用 SelectMany
:
originalList.Where(x => true).SelectMany(y => ToAList(y)).ToList();