Mik*_*ebb 43 c# ienumerable unions
我有两套数据行.它们都是IEnumerable.我想将这两个列表追加/连接到一个列表中.我确信这是可行的.我不想做一个for循环,并注意到两个列表上有一个Union方法和一个Join方法.有任何想法吗?
Ada*_*son 90
假设您的对象属于同一类型,则可以使用Union
或者Concat
.请注意,与SQL UNION
关键字一样,Union
操作将确保消除重复项,而Concat
(例如UNION ALL
)只会将第二个列表添加到第一个列表的末尾.
IEnumerable<T> first = ...;
IEnumerable<T> second = ...;
IEnumerable<T> combined = first.Concat(second);
Run Code Online (Sandbox Code Playgroud)
要么
IEnumerable<T> combined = first.Union(second);
Run Code Online (Sandbox Code Playgroud)
如果它们属于不同的类型,那么你将需要将Select
它们变成一种常见的东西.例如:
IEnumerable<TOne> first = ...;
IEnumerable<TTwo> second = ...;
IEnumerable<T> combined = first.Select(f => ConvertToT(f)).Concat(
second.Select(s => ConvertToT(s)));
Run Code Online (Sandbox Code Playgroud)
where ConvertToT(TOne f)
和ConvertToT(TTwo s)
表示以某种方式将TOne
(和TTwo
)的实例转换为实例的操作T
.