无法在列表/ arraylist中生成数组

Ron*_*ony 0 c# list arraylist unity-container

我需要在arraylist或列表中创建数组,我使用了这个:

List<string[]> OL = new List<string[]>();
string[] OLdata = new string[7];

OLdata[0] = .. ; OLdata[1] = .. OLdata[6] = ..
OL.Add(OLdata);
Run Code Online (Sandbox Code Playgroud)

我可以用它来访问它

    OL[0].GetValue(3) or OL[0][3] ..
Run Code Online (Sandbox Code Playgroud)

再次写入OLdata并将其添加到OL列表中,当我尝试访问数据时

    OL[0][3] ..
Run Code Online (Sandbox Code Playgroud)

我正在获取插入数组的新数据,我显然期待OL [0] [3]OL [1] [3]中的不同值,是什么原因或任何其他建议?

Luk*_*keH 5

数组是引用类型,因此您实际所做的只是改变,然后多次添加相同的数组对象.

你可能应该做这样的事情,每次创建和填充一个新的数组:

var olData = new string[7];  // create first array
olData[0] = ...  // etc
ol.Add(olData);  // add first array

olData = new string[7];  // create second array
olData[0] = ...  // etc
ol.Add(olData);  // add second array

// ...
Run Code Online (Sandbox Code Playgroud)