相关疑难解决方法(0)

在 C# 中按第一个元素的升序对二维数组行进行排序

我需要按第一个元素的升序对二维数组行进行排序,如示例所示

{{5,7,6},{2,9,6},{4,8,1}} --> {{2,9,6},{4,8,1},{5,7, 6}}

我可以在行中找到最大元素,但我现在不知道如何对行进行排序。

public double[] maxInRow(double[,] n) 
 { 
    double[] result = new double[n.GetLength(0)]; 
    for (int i = 0; i < n.GetLength(0); i++) 
    { 
        double max = 0;
        for (int j = 0; j < n.GetLength(1); j++) 
        { 
        if (max < n[i,j]) 
        { 
            max = n[i,j];
        } 
        } 
    result[i] = max; 
    } 
return result; 
}
Run Code Online (Sandbox Code Playgroud)

你能给点建议吗?

提前致谢!

c# arrays sorting

4
推荐指数
1
解决办法
9377
查看次数

使用Linq的列表顺序与sort不同

我想证实这一点,我试图使用Linq对我的班级列表进行排序.但是当我使用sort函数时,似乎数据的顺序并没有以相同的方式排序.

假设列表包含4个ComputeItem,并且它们的所有A都设置为1,则所有B,C,D都设置为零.

情况1:

ItemList =
    ItemList
        .OrderByDescending(m => m.A)
        .ThenBy(m => m.B)
        .ThenBy(m => m.C)
        .ThenBy(m => m.D)
        .ToList<ComputeItem>();
Run Code Online (Sandbox Code Playgroud)

与

案例2:

ItemList.Sort(
    delegate(ComputeItem item1, ComputeItem item2)
    {
        if (item1.A == item2.A)
        {
            if (item1.B == item2.B)
            {
                if (item1.C == item2.C)
                {
                    return item1.D - item2.D;
                }
                else
                {
                    return item1.C - item2.C;
                }
            }
            else
            {
                return item1.B - item2.B;
            }
        }
        else
        {
            return item2.A - item1.A;
        }
    }
);
Run Code Online (Sandbox Code Playgroud)

第一种结果是它没有移动任何东西.
第二种排序的结果是将其排序为不同的顺序.
Orignial Order [1,2,3,4]
CASE 1新订单[1,2,3,4]
CASE …

c# linq sorting list

3
推荐指数
1
解决办法
1462
查看次数

标签 统计

c# ×2

sorting ×2

arrays ×1

linq ×1

list ×1