📜  从二维数组 C# 中选择一整行(1)

📅  最后修改于: 2023-12-03 15:21:55.499000             🧑  作者: Mango

从二维数组 C# 中选择一整行

二维数组是一种由元素按照二维坐标系排列成的数组,其中每个元素都由两个下标索引来指定。在 C# 中,二维数组是由两个方括号括起来的数据类型,例如int[,] nums = new int[3,4];声明了一个包含3行4列的二维整数数组。

在某些情况下,需要从二维数组中选择一整行来进行操作。下面这个方法可以实现从一个二维数组中选择指定行:

public static T[] GetRow<T>(T[,] matrix, int row)
{
    int cols = matrix.GetLength(1);
    T[] result = new T[cols];
    for (int i = 0; i < cols; i++)
    {
        result[i] = matrix[row, i];
    }
    return result;
}

这个方法接收两个参数,一个是二维数组,一个是指定的行数。输出的是该行的所有数据,类型为一个一维数组。

下面是对该方法的代码片段按照 markdown 的格式进行标注:

/// <summary>
/// Get a row of a 2D array
/// </summary>
/// <typeparam name="T">Type of the array</typeparam>
/// <param name="matrix">2D array</param>
/// <param name="row">Row number</param>
/// <returns>An array containing the row's data</returns>
public static T[] GetRow<T>(T[,] matrix, int row)
{
    int cols = matrix.GetLength(1); // 获取二维数组的列数
    T[] result = new T[cols]; // 创建一个结果数组,用来存放选中行的数据
    for (int i = 0; i < cols; i++)
    {
        result[i] = matrix[row, i]; // 循环取出指定行的所有数据
    }
    return result; // 返回结果数组
}

使用方法比较简单,调用GetRow方法并传入要操作的二维数组和要选择的行数即可。例如:

int[,] nums = new int[3,4]
{
    {1,2,3,4},
    {5,6,7,8},
    {9,10,11,12}
};
int[] row = GetRow(nums, 1); // 获取第二行的数据

最后,需要注意的是,这个方法使用了泛型,可以处理任何类型的数据,包括整数、浮点数、字符串等。