合并排序列表<int>

时间:2016-02-15 14:22:58

标签: c# sorting

我有两个已排序List<int>,如何有效地将它们合并到一个排序列表中?

例如:

List<int> a = new List<int>() {1, 2, 3};
List<int> b = new List<int>() {1, 4, 5};
List<int> aAndB = ....?

我希望我的aAndB列表看起来像:{1, 1, 2, 3, 4, 5}

2 个答案:

答案 0 :(得分:0)

您可以使用ConcatAddRange合并两个列表:

List<int> a = new List<int>() {1, 2, 3};
List<int> b = new List<int>() {1, 4, 5};

//using Concat
List<int> aAndB = a.Concat(b).OrderBy(x => x).ToList();

//using AddRange
aAndB = new List<int>(a).AddRange(b).Sort();

答案 1 :(得分:0)

您需要ConcatOrder这些列表,如:

List<int> aAndB = a.Concat(b).OrderBy(r=> r).ToList();

使用List<T>执行相同操作的另一种方法是使用AddRange上提供的SortList<T>方法,例如:

List<int> a = new List<int>() { 1, 2, 3 };
List<int> b = new List<int>() { 1, 4, 5 };
List<int> aAndB = new List<int>(a);
aAndB.AddRange(b);
aAndB.Sort();