C# 修改多维数组

C# 修改多维数组,c#,arrays,C#,Arrays,我有一个数组变量。我可以使用Rank属性来获得维度的数量,我知道可以使用foreach访问每个元素,就像数组被展平一样。但是,我希望修改元素并更改元素引用。我无法动态创建正确数量的for循环,也无法使枚举数无效 编辑 谢谢你的评论,很抱歉之前在漫长的一天结束时缺乏清晰性。问题是: private void SetMultiDimensionalArray(Array array) { for (int dimension = 0; dimension < array.Rank;

我有一个数组变量。我可以使用Rank属性来获得维度的数量,我知道可以使用foreach访问每个元素,就像数组被展平一样。但是,我希望修改元素并更改元素引用。我无法动态创建正确数量的for循环,也无法使枚举数无效

编辑 谢谢你的评论,很抱歉之前在漫长的一天结束时缺乏清晰性。问题是:

private void SetMultiDimensionalArray(Array array)
{
    for (int dimension = 0;  dimension < array.Rank;   dimension++)
    {
        var len = array.GetLength(dimension);
        for (int k = 0; k < len; k++)
        {
            //TODO: do something to get/set values
        }
     }
}

Array array = new string[4, 5, 6];
SetMultiDimensionalArray(array);
Array array = new string[2, 3];
SetMultiDimensionalArray(array);

除非有人能提出一个更好的方法,否则现在一切似乎都清楚了。svick已将此链接,因此我将接受此答案,除非有任何进一步的建议。

很难说清楚您到底需要什么,因为您的问题很不清楚


但是,如果您有一个多维数组(不是交错数组),您只能在运行时知道它的秩,那么您可以使用它来获取指定索引处的值(作为
int
s的数组提供)设置它。

如果我能看到一些代码,这将更容易概念化。当然,我会编辑这个问题,但直到明天,thxArrays才在c中实现
IEnumerable
。到底是什么问题?请看这篇文章,了解详细的描述-你问题的标题令人困惑。在C#中,多维数组(例如
int[,]
)不同于锯齿数组(例如
int[]][]
)。从你的描述来看,你似乎在处理前者,对吗?@svick你是对的,不是锯齿阵列。
Array.GetValue(params int[] indices)
Array.SetValue(object value, params int[] indices)