c#如何将数组更改为数组或数组

我有这个代码:

int[] ivrArray = { 1, 0, 0, 0}; int[] agentsArray = { 0, 2, 0, 0 }; int[] abandonedArray = { 0, 0, 3, 0}; int[] canceledArray = { 0, 0, 0, 4}; Dictionary dictionary = new Dictionary() { { "IVR", ivrArray }, { "Agents", agentsArray }, { "Abandoned", abandonedArray }, { "Cancelled", canceledArray }, }; 

输出是

 { "IVR": [ 1, 0, 0, 0 ], "Agents": [ 0, 2, 0, 0 ], "Abandoned": [ 0, 0, 3, 0 ], "Cancelled": [ 0, 0, 0, 4 ] } 

无论如何,输出将是这样的:

 "Cancelled":[ [0], [0], [0], [4] ] 

所以每个元素都是一个元素的数组

您可以将数组重新投影到Dictionary如下所示:

  var dictionary = new Dictionary { {"IVR", ivrArray.Select(_ => new[] {_}).ToArray()}, {"Agents", agentsArray.Select(_ => new[] {_}).ToArray()}, {"Abandoned", abandonedArray.Select(_ => new[] {_}).ToArray()}, { "Cancelled",canceledArray.Select(_ => new[] {_}).ToArray()} }; 

(我想如果你不想要当地的变种那么

  ... {"IVR", new [] { 1, 0, 0, 0 }.Select(_ => new[] {_}).ToArray()}, ... 

你可以使用Jagged Arrays概念这样做:

例如:

 int[] list1 = new int[4] { 1, 2, 3, 4}; int[] list2 = new int[4] { 5, 6, 7, 8}; int[] list3 = new int[4] { 1, 3, 2, 1 }; int[] list4 = new int[4] { 5, 4, 3, 2 }; int[][] lists = new int[][] { list1 , list2 , list3 , list4 }; 

在字典中:

  Dictionary items= new Dictionary; 

这是MSDN文档:

http://msdn.microsoft.com/en-us/library/2s05feca.aspx