现在我遇到了填充某些子列表的问题。我有一个名为“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。我不知道出了什么问题。有人知道吗?谢谢
答案 0 :(得分:1)
该行
List<FileInfo>[] sublist = new List<FileInfo>[foldername.Length];
实际上并不创建带有空列表的数组,它会创建一个带有NULL引用的数组。我认为你应该创建一个空列表的实例,并将其存储在数组中。