我正在尝试将List<T>
转换为Jagged Array T [][]
。但是锯齿数组中的每个数组都在重复列表的前N个元素。我知道我的代码正是这样做的,但是如何以不同的方式遍历列表,这样我就不会遍历相同的N个元素?
请忽略DataTree<T>
类型,它只是创建锯齿数组的参考数据结构拓扑。
public static T[][] ToJaggedArrray<T>(this List<T> data, DataTree<T> dataTree)
{
// Get total elements on each row
//dataTree.DataCount = total elements in data structure
int totalElementsPerArray = dataTree.DataCount / dataTree.BranchCount;
// dataTree.BranchCount = number of elemets/rows
int numElements = dataTree.BranchCount;
T[][] outPut = new T[numElements][];
for (int i = 0; i < outPut.Length; i++)
{
T[] temp = new T[totalElementsPerArray];
for (int j = 0; j < temp.Length; j++)
{
temp[j] = data[j];
}
outPut[i] = temp;
}
return outPut;
}
/* Output:
54
19
83
80
28
48
46
16
52
38
41
10
Element(0): 54 19 83 80
Element(1): 54 19 83 80
Element(2): 54 19 83 80
*/
/* Expected Output:
54
19
83
80
28
48
46
16
52
38
41
10
Element(0): 54 19 83 80
Element(1): 28 48 46 16
Element(2): 52 38 41 10
*/
答案 0 :(得分:-2)
我相信您的问题是您不了解循环。在您的情况下,嵌套的for循环将始终从0开始,并将始终从数据中获取temp.length元素。
您在这里看到我的观点吗?