将两个列表结合在一起
如果我有两个字符串类型(或任何其他类型)的列表,那么加入这两个列表的快捷方式是什么?
订单应该保持不变。 应删除重复项目(尽管两个链接中的每个项目都是唯一的)。 在Google上搜索时,我没有发现太多内容,也不希望为了交付速度而实现任何.NET接口。
你可以尝试:
List<string> a = new List<string>();
List<string> b = new List<string>();
a.AddRange(b);
AddRange
MSDN页面
这保留了列表的顺序,但不会删除Union
会做的任何重复。
这确实会改变列表a
。 如果你想保留原始列表,那么你应该使用Concat
(正如在其他答案中指出的那样):
var newList = a.Concat(b);
只要a
不为null,就会返回IEnumerable
。
最小空间开销的方式是使用Concat扩展方法。
var combined = list1.Concat(list2);
它创建一个IEnumerable<T>
实例,它将按照该顺序枚举list1和list2的元素。
联盟方法可能会满足您的需求。 您没有指定订单或重复是否重要。
以两个IEnumerables并执行一个联合,如下所示:
int[] ints1 = { 5, 3, 9, 7, 5, 9, 3, 7 };
int[] ints2 = { 8, 3, 6, 4, 4, 9, 1, 0 };
IEnumerable<int> union = ints1.Union(ints2);
// yields { 5, 3, 9, 7, 8, 6, 4, 1, 0 }
链接地址: http://www.djcxy.com/p/21201.html
上一篇: Joining two lists together
下一篇: When does it matter whether you use int versus Int32, or string versus String?