列表<String>在循环后不保存

tha*_*Doc 0 c#

我试图找出为什么我的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)

有更多的代码,但我希望它是更局部的东西,因为值是在循环中分配的,但变量是在外部声明的.

Pat*_*man 6

你正在清理清单!(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)