C#2D数组索引交换

时间:2017-05-26 14:30:19

标签: c# arrays multidimensional-array 2d keyevent

我有2D数组。

例如:

        int[,] Map = new int[5, 5]
        { 
        {1,1,1,1,1},
        {1,2,0,0,1},
        {1,0,0,0,1},
        {1,0,0,0,1},
        {1,1,1,1,1}
        };

我需要一些KeyEvent更改索引2(索引 - [1,1])。

例如:

        1,1,1,1,1
        1,0,2,0,1
        1,0,0,0,1
        1,0,0,0,1
        1,1,1,1,1

知道怎么做吗?

1 个答案:

答案 0 :(得分:0)

以文章的形式提供了一篇优秀的文档here

它深入解释了处理多维数组的整个过程,包括以下用于管理数组的代码:

// Initialization
int[,] array = new int[4, 2];
int[,] array2D = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };

// Modification
array2D[1, 1] = 8;

// Access
Console.WriteLine(array2D[2,1]);

在上面的修改示例中,它会将第二个(使用从零开始的索引)项目的第二个整数更改为值8。

在上面的访问示例中,它将显示第三个项的第二个整数,它将返回6.


要直接回答你的问题,“交换”变量的概念包括三个步骤:

  1. 使用访问器为第一个值设置临时变量的值
  2. 使用setter和accessor将第一个值设置为第二个值
  3. 使用setter将第二个值设置为临时变量的值
  4. 这一项工作的一个例子是:

    int a = 5;
    int b = 6;
    int temp;
    temp = a; // Step 1
    a = b; // Step 2
    b = temp; // Step 3    
    

    根据您给出的示例,您似乎将第二个数组中的第三个项目设置为第二个数组中的第二个项目。可以使用以下方法完成此过程:

    int temp;
    temp = map[1, 2];
    map[1, 2] = map[1, 1];
    map[1, 1] = temp;