【发布时间】:2013-06-14 13:36:05
【问题描述】:
我有一个奇怪的问题,我的所有字符串数组在列表中都有相同的值。 这是我的代码:
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()的代码 -
在即时窗口中试试这个
map_data[0] == map_data[1999]如果它返回true你添加相同的数组2000 次(即PopulateDataFromFile()返回相同的数组如果它返回false然后@987654329 @ 每次返回一个新数组,但内容相同 -
@Golgauth 请不要在标题中添加标签,它是出于某种目的而被删除的。也不要使用内联代码来标记帖子中的每个关键字,这会产生过多的“噪音”。
-
在调试时再检查一件事 - 在第二次迭代中,当您看到 map_data_array 返回了不同的值时,请检查 map_data[0] 是否也具有相同的值。这意味着您的代码在某处更新了相同的引用。
-
@ShadowWizard 好的,注意内联代码,我保证不会再这样做了;-) 但我从未更改过标题...