多维与Jagged数组

时间:2017-01-20 12:35:14

标签: c# arrays multidimensional-array

我使用了MultiDimesional数组,如下所示

  string[,] Columns = { { "clientA", "clientB" }}

    if (Columns.Length != 0)
            {
                for (int i = 0; i < Columns.Length / 2; i++)
                {
                    bulkCopy.ColumnMappings.Add(Columns[i, 0], Columns[i, 1]);
                }
            }

在代码分析后,我收到了警告信息

Severity    Code    Description Project File    Line    Suppression State
Warning CA1814  'Order.GetLastOrderID()' uses a multidimensional array of  
'string[,]'. Replace it with a jagged array if possible.    

我已经研究过互联网上的锯齿状阵列,但如何用锯齿状阵列替换我的阵列。

2 个答案:

答案 0 :(得分:0)

锯齿状数组是一个数组数组,因此您将定义更改为:

string[][] Columns = { new string[] { "clientA", "clientB" }};

从...更改阵列访问权限

var value = Columns[0,0];

...到...

var value = Columns[0][0];

您还可以选择取消警告(右键单击它并选择所需的选项)。 According to MSDN,这是一个在某些情况下可以安全抑制的警告。在更改代码之前,请检查您的是否是这种情况。

答案 1 :(得分:0)

这应该有效:

 string[][] Columns = { 
     new string[] { "ClientA", "ClientB" } 
 };

如果需要向数组添加更多元素,它应如下所示:

string[][] Columns = { 
    new string[] { "ClientA", "ClientB" },
    new string[] { "ClientC", "ClientD" },
    new string[] { "ClientE", "ClientF" } 
};

然后您可以使用下面的代码访问每个元素

Columns[0][0] // Client A
Columns[0][1] // Client B
Columns[1][0] // Client C
Columns[1][1] // Client D
// etc.