对包含空元素的交错数组进行排序
我声明了一个锯齿状数组,就像
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 通常为空,并且排序后的数组全为零。
有什么建议吗?
I have a jagged array declared like
int[][][] tmpA = new int[INT_WORKING_SIZE * 2][][];
I trying to sort this array with this code:
Array.Sort(tmpA, 0, INT_WORKING_SIZE*2, new MyArrayComparer());
and my class:
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);
}
each row of jagged array has 2 arrays with 12 ints.
I want to sort the array by adding all the 12 ints of the second array and the smallest should be first.
However my major problem is that object x,y are often nulls and the sorted array gets all zeros.
any tips?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果我理解正确,你的问题是当两个数组中的任何一个为空时你返回 0,当你应该返回 1 或 -1 取决于哪个不为空时,只有当两个数组都为空时才返回 0。
If I understand you correctly, your problem is you're returning 0 when either of the arrays is null, when you should be returning 1 or -1 depending on which is not null, and 0 only when both are null.