【发布时间】:2016-09-23 23:13:02
【问题描述】:
我正在努力解决 C# 中的嵌套列表。我正在用 Excel 数据填充列表。为此,我从 subdlist2 中的列中存储所有数据,然后将其添加到我的主列表 termsList 中。
但是,当我最后显示列表的内容时,值不是来自多行的值,而是被最后一列中的值替换。列表内容存储是否作为参考而不是值?
示例:我有 5 行,具有不同的值,第五个值替换所有值。
for (i = 0; i < num_speed; i++)
{
lastrow_current = GetLastUsedRow(currentWorksheet, 12 + i * 11);
for (int j = 0; j < lastrow_current; j++)
{
if (currentWorksheet.Cells[j + 6, 12 + i * 11].Value != null)
{
if (j == 0)
{
sublist2.Add(currentWorksheet.Cells[j + 6, 13 + i * 11].Value.ToString());
}
else
{
sublist2.Add(currentWorksheet.Cells[j + 6, 13 + i * 11].Value.ToString());
}
}
}
termsList.Add(sublist2);
}
termsList.Add(sublist2);
foreach (var sublist3 in termsList)
{
foreach (var value in sublist3)
{
Console.Write(value);
Console.Write(' ');
}
Console.WriteLine();
}
【问题讨论】:
-
能否提供数据和输出的示例?不管怎样,你永远不会为
sublist2创建一个新实例,所以termsList中的所有成员实际上都是同一个list实例,这应该是不正确的。