我遇到了一个奇怪的问题,我的所有字符串数组在列表中都具有相同的值。
这是我的代码:
List<string[]> map_data = new List<string[]>();
string[] map_data_array = new string[11];
for(int i = 0; i < 2000; i++)
{
map_data_array = PopulateDataFromFile(); // it returns different data every call
map_data.Add(map_data_array); // store to List
}
map_data_array始终包含不同的数据,我通过在那里放置断点并检查它来验证了这一点。
问题是map_data
的所有元素具有相同的值。而且这个值是来自函数PopulateDataFromFile
在i等于1999时的数据。
我做错了什么? :/
PopulateDataFromFile()
的代码。 - aiapatagmap_data[0] == map_data[1999]
,如果返回true
,则您正在添加相同的数组2000次(也就是说,如果PopulateDataFromFile()
返回相同的数组,则返回相同的内容)。如果返回false
,则PopulateDataFromFile()
每次都会返回一个新的数组,但内容相同。 - Rune FSPopulateDataFromFile();
一次性返回所有数据,数组会尽可能地存储,例如前12个元素。请查看我的答案。 - DGibbs