1
我有一個數組變量。我可以使用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);
我再看看閱讀本頁面之前,看來我需要做的就是創建整數數組列表,並使用的GetValue的過載和的SetValue -
Array.GetValue(params int[] indices)
Array.SetValue(object value, params int[] indices)
一切現在似乎很清楚,除非有人可以提出一個更好的方法svick已經鏈接到這個,所以我會接受這個答案,除了任何進一步的建議。
如果我能看到一些代碼,這將更容易概念化。 – paqogomez
當然會編輯的問題,但直到明天現在thx –
在c#中的數組實現'IEnumerable'。究竟是什麼問題? 看到這篇文章的一個很好的描述 - http://stackoverflow.com/questions/7173266/casting-array-to-ienumerablet –
Caleb