2017-05-18 45 views
0

我想使用多維字符串數組。 我可以很容易地創建它:c#添加新的項目到現有的字符串[,]陣列

string[,] array = new string[,] 
{ 
{"AA", "AB"}, 
{"AC", "AD"}, 
}; 

這裏沒問題。

這個想法是添加更多的項目後。 假設是我的數組可以擴展許多「行」,但只有兩個「列」。

我試着這樣做:

array[0,0] = "AE"; 
array[0,1] = "AF"; 

但這似乎並沒有工作。爲什麼?

還有什麼方法可以添加(連接/連接?)例如一氣呵成:

new string[,] { {"AE", "AF"} } 

array[i,???] = {"AE", "AF"} 

其中,i可以是可變的(例如,到最後的位置)和列將不必被定義(基於數組中定義2個欄)

這可以將新項目添加到現有數組(第3位)?

字符串[,]是手動設置項目的非常好的解決方案,但是如果您有需要添加到數組中的外部數據,我無法在任何其他帖子上找到任何示例。

有人可以幫忙嗎? 謝謝。

問候,

+0

數組是固定大小。你想要使用不是固定大小的數據結構(例如'List ') – DigiFriend

+0

爲什麼不使用列表並將新項目添加到數組中?例如'array = new List (array){「AE」,「AF」} .ToArray();' – MethodMan

+0

*假設我的數組可以擴展爲許多「行」,但只有兩個「列」。*你爲什麼這樣做? –

回答

0

你需要一個可以增長(和縮小)一個數據結構

嘗試: -

var array = new List<string[]> {new[] {"AE", "AF"}, new []{"A", "B"}}; 

然後

array.Add(new []{"XY", "AB"}); 

,你可以像訪問: -

Console.WriteLine(array[0][0]); 
array[0][0] = "BB"; 
Console.WriteLine(array[0][0]); 

如果你喜歡的數組初始化語法,你能做到這一點首先並將其轉換爲類似的列表: -

var initial = new[,] {{"H", "I"}, {"R", "V"}}; 

var array = Enumerable.Range(0, initial.GetUpperBound(0) + 1) 
    .Select(n => new[] {initial[n, 0], initial[n, 1]}).ToList(); 
+0

圖形使用_ {{「A」,「B」}的,{「C」,」中D「}} _而不是_array.Add(new [] {」A「,」B「} + array.Add(new [] {」C「,」D「} + _ ...想象30行或更多。第一個選項總是比較好,但是因爲我需要擴展這個選項,現在超出手動設置的項目數量(數組長度),我無法找到前進的方向(由於我的知識限制)。這甚至可能嗎? – ptuga

+0

如果你看一下我的代碼,你不必添加每一個,但你必須有新的[]。 –

+0

更新,向您展示如何使用數組種子列表 –

相關問題