为什么我不能填充子列表

时间:2014-06-11 08:37:42

标签: c# list

现在我遇到了填充某些子列表的问题。我有一个名为“list”的主列表,其类型为FileInfo,包含数千个文件。我想要做的是将这个主列表拆分成几个子列表,每个子列表包含一组具有相同名称的文件。我确实是这样的:

var File = list;
string[] foldername = Names.Distinct().ToArray();
List<TreeNode> N1 = new List<TreeNode>();
List<FileInfo>[] sublist = new List<FileInfo>[foldername.Length];

for (int j = 0; j < foldername.Length; j++)
{
    N1.Add(clicked.Nodes.Add(foldername[j]));
    foreach (FileInfo file in File)
    {
        if (file.Name== N1[j].Name)
                sublist[j].Add(file);
    }
}

例如,foldername数组有7个元素,所以我希望有7个子列表。每个子列表中包含的文件与树节点N1 [j]具有相同的名称。 然而,结果是

sublist[j].Add(file)

根本没有被执行,每个子列表都是null。我不知道出了什么问题。有人知道吗?谢谢

1 个答案:

答案 0 :(得分:1)

该行

List<FileInfo>[] sublist = new List<FileInfo>[foldername.Length];

实际上并不创建带有空列表的数组,它会创建一个带有NULL引用的数组。我认为你应该创建一个空列表的实例,并将其存储在数组中。