c# - 排序锯齿状数组

标签 c# arrays sorting jagged-arrays

var data = read();
switch (selector)
{
    case 1://accending
        data = data.OrderBy(inner => inner[2]).ToArray();
        drawChart();
        for (int i = 0; i < data[0].Length; i++)
        {
            for (int j = 0; j < data.Length; j++)
            {
            if (j != 0)
                {
                    Console.Write("     ");
                }
                Console.Write(data[j][i] + "  ");
            }
            Console.WriteLine();
        }
        complete = true;
        break;
    case 2://decending
        complete = true;
        break;
    default:
        Console.WriteLine("Not an option please enter a number between 1 and 2");
        break;
}

我有一个名为数据的交错数组,正在此处打印,我需要能够根据用户输入(案例 1 和 2)对数组进行排序

假设数据看起来像这样

jaggedarray[0] = new int[5] { 99, 999, 49, 79, 59 };
jaggedarray[1] = new int[3] { 199, 1999, 149 };
jaggedarray[2] = new int[2] { 999, 500 };

我如何对其进行排序,以便将第二列从最高到最低排序,然后打印出整个数组?

最佳答案

Hari Prasad 回答的另一种方法,非常好。

您可以使用 Array.Sort 进行排序,并使用针对第二列的 Comparison

像这样:

var jaggedarray = new int[3][];

jaggedarray[0] = new int[5] { 99, 999, 49, 79, 59 };
jaggedarray[1] = new int[3] { 199, 1999, 149 };
jaggedarray[2] = new int[2] { 999, 500 };

Array.Sort(jaggedarray,  new Comparison<int[]>( 
    (x,y) => { return x[1] < y[1] ? -1 : (x[1] > y[1] ? 1 : 0); }
));

关于c# - 排序锯齿状数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36746218/

相关文章:

r - 按 id 对数据框中的一个变量进行排序

c# - 修改已设置的 mock 属性

c# - 使用 devexpress 15.2 c# 在 gridview 中更改焦点后,已编辑的单元格被重置

c# - WPF 中的自定义 MessageBox 按钮

javascript - AngularJS:按属性名称过滤对象数组

java - 理解Java中字节的掩码

javascript - 将两个不同的 Fetch 调用与来自 Jsonplaceholder.com 的数据合并

c# - 局部变量作用域

python - 如何将附加参数传递给自定义 python 排序函数

c++ - 以升序插入双向链表的问题