我试图找出为什么我的dataItems List<List<string>>在循环后没有保存.当我调试它时,它添加到dataItemsList List<string>就好了,每个值为3和6迭代(如预期的那样).
一旦它离开for循环,它就只有6个空列表.
List<List<string>> dataItems = new List<List<string>>();
List<string> dataItemsList = new List<string>();
for (int i = 0; dataReader.Read(); i++)
{
int j = 0;
for (j = 0; j < dataReader.FieldCount; j++)
{
dataItemsList.Add(dataReader[j].ToString());
}
dataItems.Add(dataItemsList);
dataItemsList.Clear();
}
Console.WriteLine(dataItems);
Run Code Online (Sandbox Code Playgroud)
有更多的代码,但我希望它是更局部的东西,因为值是在循环中分配的,但变量是在外部声明的.
你正在清理清单!(dataItemsList.Clear();)
您可能想要创建一个新实例,而不是清除列表:
while (dataReader.Read())
{
List<string> dataItemsList = new List<string>();
for (int j = 0; j < dataReader.FieldCount; j++)
{
dataItemsList.Add(dataReader[j].ToString());
}
dataItems.Add(dataItemsList);
}
Console.WriteLine(dataItems);
Run Code Online (Sandbox Code Playgroud)