将列表列表转换为字节数组

时间:2014-01-28 16:26:43

标签: c# arrays winforms wav

我有整数列表列表,我正在进行移位编码,所以我对每个流都有不同的长度代码,所以我使用每个列表的列表,因为它重新调整大小,我试图将所有流存储在一个字节数组,我失败了,我怎么能转换成字节数组...

像这样:

list[10 item]
list[0] of list[5 item][0,0,1,0,3]
list[1] of list[4 item][0,0,1,1]

并将其转换为字节数组......

像这样:     阵列[字节] = [0,0,1,0,3,0,0,1,1,3,0,0,...]; 内部列表中的项目计数不同于一个项目....

3 个答案:

答案 0 :(得分:2)

我认为SelectMany正是您所寻找的:

List<List<int>> foo = new List<List<int>> { new List<int> { 1, 2, 3 }, new List<int> { 1, 2 } };
var flat = foo.SelectMany(x => x).ToList();

平现在:1,2,3,1,2

答案 1 :(得分:1)

SelectMany为您提供所需:

var list = new List<List<int>>();
list.Add(new List<int>() {1, 2, 3});
list.Add(new List<int>() {4, 5, 6});
list.Add(new List<int>() {7, 8, 9});
var combined = list.SelectMany(x => x).Select(x=>(byte)x).ToArray();

最后,从一个int列表中有一个扁平的字节数组。听起来就像你想要的那样。

答案 2 :(得分:1)

如果您对LINQ感到满意,那么您可以使用.SelectMany()“展平”列表等列表。

像:

var array = listOfLists.SelectMany(x => x).ToArray();