【发布时间】:2011-03-27 04:49:15
【问题描述】:
我有一个像这样声明的锯齿状数组
int[][][] tmpA = new int[INT_WORKING_SIZE * 2][][];
我试图用这段代码对这个数组进行排序:
Array.Sort(tmpA, 0, INT_WORKING_SIZE*2, new MyArrayComparer());
和我的班级:
public int Compare(object x,object y)
{
if (x == null || y == null)
return 0;
int[][] arrayA = (int[][])x;
int[][] arrayB = (int[][])y;
int resultA = arrayA[1].Sum();
int resultB = arrayB[1].Sum();
return resultA.CompareTo(resultB);
}
锯齿状数组的每一行有 2 个 12 个整数的数组。
我想通过添加第二个数组的所有 12 个整数来对数组进行排序,最小的应该是第一个。
但是我的主要问题是对象 x,y 通常为空,并且排序后的数组全为零。
有什么建议吗?
【问题讨论】:
-
提示 - 循环、正确的 OOP、Helper 方法、
arrayA[1].Sum()。 -
你有没有完全初始化
tmpA?我看到你创建了第一个数组。但是该数组中的 2 个 12 数组呢? -
科比:谢谢。固定的! Jeff:tmpA 是另外两个锯齿状数组的组合。它被初始化。但是,在 tmpA 数组的中间有一个空条目。这是 null 是我在排序后得到所有 null 的原因吗??
标签: c# sorting jagged-arrays