📜  二维列表 c# (1)

📅  最后修改于: 2023-12-03 14:49:01.735000             🧑  作者: Mango

二维列表(数组)在C#中的应用

在C#中,二维列表是一种非常有用的数据结构。它是由多个一维列表组成,并按照一定的规则互相排序组成。以下是有关二维列表在C#中的介绍。

定义二维列表

C#中定义一个二维列表的语法如下:

// 定义一个有3行,4列的二维列表
int[,] myarray = new int[3, 4];

这个语句创建一个 [3, 4] 的二维列表,并且可以用下标 myarray[i, j] 访问元素。

初始化二维列表

C#中初始化一个二维列表的语法如下:

// 定义并初始化二维列表,每个元素的值初始化为0
int[,] myarray = new int[3, 4] {{0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11}};

这个语句创建一个 [3, 4] 的二维列表,并将初始值指定为 {{0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11}}

访问二维列表

可以通过二重循环遍历二维列表的每一个元素,实现访问。

// 遍历二维列表并输出元素值
for (int i = 0; i < myarray.GetLength(0); ++i)
{
    for (int j = 0; j < myarray.GetLength(1); ++j)
    {
        Console.Write(myarray[i, j] + " ");
    }
    Console.WriteLine();
}

这个语句遍历二维列表 myarray,并输出每一个元素的值。

二维列表的排序

通过比较函数可以对二维列表进行排序。

// 定义二维列表的比较函数
public static int Compare(int[] x, int[] y)
{
    if (x[0] == y[0])
    {
        if (x[1] < y[1]) return -1;
        else if (x[1] == y[1]) return 0;
        else return 1;
    } else if (x[0] < y[0]) return -1;
    else return 1;
}

// 对二维列表进行排序
int[,] myarray = new int[3, 2] {{2, 5}, {1, 6}, {2, 3}};
int[][] mylist = new int[myarray.GetLength(0)][];
for (int i = 0; i < myarray.GetLength(0); ++i)
{
    mylist[i] = new int[2];
    mylist[i][0] = myarray[i, 0];
    mylist[i][1] = myarray[i, 1];
}
Array.Sort(mylist, new Comparison<int[]>(Compare));

这个语句定义了一个二维列表的比较函数 Compare,并且把二维列表转换成一维列表 mylist 后,使用 Array.Sort 方法进行排序。

总结

二维列表在C#中应用广泛,可以灵活地存储数据,并且支持遍历和排序操作。掌握二维列表的基本语法和常用操作是C#程序员必须具备的技能之一。