📅  最后修改于: 2023-12-03 14:49:01.735000             🧑  作者: Mango
在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#程序员必须具备的技能之一。