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);
要么
IEnumerable<T> combined = first.Union(second);
如果它们属于不同的类型,那么你将需要将Select它们变成一种常见的东西.例如:
IEnumerable<TOne> first = ...;
IEnumerable<TTwo> second = ...;
IEnumerable<T> combined = first.Select(f => ConvertToT(f)).Concat(
                          second.Select(s => ConvertToT(s)));
where ConvertToT(TOne f)和ConvertToT(TTwo s)表示以某种方式将TOne(和TTwo)的实例转换为实例的操作T.
| 归档时间: | 
 | 
| 查看次数: | 31105 次 | 
| 最近记录: |