private static void A(){
List<int[]> list = new List<int[]>();
int[] a = {0,1,2,3,4};
int[] b = {5,6,7,8,9};
list.Add(a);
list.Add(b);
List<int> list2 = new List<int>();
// list2 should contain {0,1,2,3,4,5,6,7,8,9}
}
我该如何将List<int[]> list
转换为List<int>
,使所有int[] arrays
成为一个庞大的数字列表
答案 0 :(得分:9)
似乎您正在寻找LINQ .SelectMany
方法。
来自MSDN的报价:
将序列的每个元素投影到IEnumerable并展平 产生的序列变成一个序列
List<int> list2 = list.SelectMany(l => l).ToList();
如果您希望数字按特定顺序排序,则可以在执行查询之前使用.OrderBy
(在我们调用.ToList
时执行)
List<int> list2 = list.SelectMany(l => l).OrderBy(i => i).ToList();
答案 1 :(得分:2)
那怎么办?
var list2 = a.Concat(b).ToList();
答案 2 :(得分:0)
我将使用聚合函数。有更大的收藏集会更好。
List<int> list2 = list.Aggregate(new List<int>(), (ag, l) => { ag.AddRange(l); return ag; });