我有两个已排序的List<int>
,我如何有效地将它们合并到一个排序列表中?合并排序列表<int>
例如:
List<int> a = new List<int>() {1, 2, 3};
List<int> b = new List<int>() {1, 4, 5};
List<int> aAndB = ....?
我想,我的aAndB
名单OT样子:{1, 1, 2, 3, 4, 5}
我有两个已排序的List<int>
,我如何有效地将它们合并到一个排序列表中?合并排序列表<int>
例如:
List<int> a = new List<int>() {1, 2, 3};
List<int> b = new List<int>() {1, 4, 5};
List<int> aAndB = ....?
我想,我的aAndB
名单OT样子:{1, 1, 2, 3, 4, 5}
您可以使用Concat
或AddRange
合并两个列表如下:
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();
你需要Concat
和Order
这些列表如:
List<int> aAndB = a.Concat(b).OrderBy(r=> r).ToList();
另一种方式做同样的List<T>
是使用AddRange
和Sort
方法可在List<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();
提防那些需要你的名单重新排序的答案。 ;) –
@HimBromBeere,完全同意你的看法。我上周也看到类似的问题,所以OP在提出这样一个小问题之前应该做一点研究。 – Alex