假设有一个pair模型,它有一个FirstId
和一个SecondId
Guid属性,我想创建一个id列表,现在我是这样做的:
var ids = new List<Guid> { };
payload.Pairs
.ToList()
.ForEach(x =>
{
ids.Add(x.FirstId);
ids.Add(x.SecondId);
});
在linq中有没有什么神奇的方法可以代替ForEach
来做这件事?
4条答案
按热度按时间4ioopgfo1#
使用
SelectMany
:ars1skjm2#
您的方法可以转换为Linq的
Aggregate
函数如果您的
payload.Pairs
已经被具体化,并且它不是IEnumerable
,那么您可以像这样进行一些内存优化Here is a working example on dotnet fiddle.
a5g8bdjr3#
另一种类型的解决方案可以是使用两个guid流
然后根据顺序的重要性,您可以分别使用
Zip
或Concat
。Related dotnet fiddle
aij0ehis4#
除了
SelectMany
之外,如果你想把它们添加到一个现有的列表中,AddRange
函数是最好的用途: