我的索引超出了范围异常。我对它进行了调整,特别是在" s [i] .AddRange()" " GetFiles()"方法只是" Directory.GetFiles()"但它可以接受多个文件结尾。
static List<List<string>> directories
{
get
{
Debug.Log(folders.Length);
List<List<string>> s = new List<List<string>>();
for (int i = 0; (i < folders.Length); i++)
{
s[i].AddRange(GetFiles(folders[i], "*.png,*.jpg,*.bmp,*.tif,*.tga,*.psd").ToList());
s[i].AddRange(GetFiles(folders[i], "*.prefab").ToList());
}
return s;
}
}
答案 0 :(得分:1)
当你这样做时,你会得到一个空盒子,可能存放一串字符串,但它还没有。尝试访问元素i
会导致它抛出您正在看到的异常。
List<List<string>> s = new List<List<string>>();
在您可以访问某个项目之前,您需要添加一个项目。
s.Add(new List<string>());
在你的情况下,我不打算添加一个空列表,然后使用索引访问它。只需这样做:
List<List<string>> s = new List<List<string>>();
for (int i = 0; (i < folders.Length); i++)
{
var list = GetFiles(folders[i], "*.png,*.jpg,*.bmp,*.tif,*.tga,*.psd").ToList();
list.AddRange(GetFiles(folders[i], "*.prefab").ToList());
s.Add(list);
}
答案 1 :(得分:0)
您已经新建了一个List&gt;但没有添加任何新列表。
这是一个非常简单的for循环,应该有所帮助。
List<List<String>> s = new List<List<string>>();
for (int i = 0; i < 10; ++i) {
s.Add(new List<String>());
s[i].AddRange(new String[] { "a", "b", "c" });
}
更新以解决原始答案中的问题。