将两个列表结合在一起

如果我有两个字符串类型(或任何其他类型)的列表,那么加入这两个列表的快捷方式是什么?

订单应该保持不变。 应删除重复项目(尽管两个链接中的每个项目都是唯一的)。 在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?