// The answer that I was looking for when searching
public void Answer()
{
IEnumerable<YourClass> first = this.GetFirstIEnumerableList();
// Assign to empty list so we can use later
IEnumerable<YourClass> second = new List<YourClass>();
if (IwantToUseSecondList)
{
second = this.GetSecondIEnumerableList();
}
IEnumerable<SchemapassgruppData> concatedList = first.Concat(second);
}
6条答案
按热度按时间8tntrjer1#
是的,LINQ to Objects通过
Enumerable.Concat
支持此功能:注意:如果
first
或second
为空,您将收到一个ArgumentNullException
。为了避免这种情况&将空值视为空集,请使用如下空合并操作符:xmd2e60i2#
Concat
方法将返回一个对象,该对象通过返回(称之为Cat),其枚举数将尝试使用传入的两个可枚举项(称它们为A和B)。如果传入的枚举对象表示在Cat的生存期内不会更改的序列,并且可以从其中读取而没有副作用,则可以直接使用Cat。否则,在Cat
上调用ToList()
并使用结果List<T>
(它将表示A和B的内容的快照)可能是一个好主意。某些可枚举项在枚举开始时获取快照,并且如果集合在枚举期间被修改,则将从该快照返回数据。如果B是这样的可枚举项,则在Cat到达A末尾之前发生的对B的任何更改将显示在Cat的枚举中,但在此之后发生的更改将不会显示。此类语义可能会引起混淆;拍摄Cat快照可以避免此类问题。
kq0g1dla3#
您可以使用下面的代码为您的解决方案:-
brccelvz4#
我知道这是一篇相对较老的文章,但是如果您希望连接多个IEnumerable,我将使用以下代码
这将消除任何空IEnumerable,并允许多个串联。
gpnt7bae5#
基于craig1231的答案,我创建了一些扩展方法...
olhwl3o26#