在C#,它可能初始化使用常數像這樣多維數組:初始化在c#多維陣列(與其他陣列)
Object[,] twodArray = new Object[,] { {"00", "01", "02"},
{"10", "11", "12"},
{"20", "21", "22"} };
我個人認爲初始化硬編碼的常數的陣列一種用於無用除了測試練習之外的任何事無論如何,我非常需要做的就是使用現有的數組來初始化一個新的多維數組。 (具有相同的項目數量,但內容當然只在運行時定義)。
我想要做的一個樣本是。
Object[] first = new Object[] {"00", "01", "02"};
Object[] second = new Object[] {"10", "11", "12"};
Object[] third = new Object[] {"20", "21", "22"};
Object[,] twodArray = new Object[,] { first, second, third };
不幸的是,這不會作爲有效的代碼進行編譯。有趣的是,當我試圖
Object[,] twodArray = new Object[,] { {first}, {second}, {third} };
代碼做編譯和運行,但並沒有如期望的結果 - 一個3×3數組對象的,哪冒出來的是一個3×1陣列陣列,每個都有3個元素。當這種情況發生,我無法通過訪問我的數組:
Object val = twodArray[3,3];
我必須去:
Object val = twodArray[3,1][3];
這顯然是不理想的結果。
那麼,有沒有什麼辦法來從多個現有的數組初始化這個新的二維數組,而不訴諸迭代?
是否對象[] {第一,第二,第三};有意義而不是Object [,] {first,second,third}; (去除尺寸昏迷)?應該注意爲twoarray [3] [3] –