Как работать со списком списков - C#
Формулировка задачи:
Хочу сделать список<списков<объектов>>, чтобы хранить в нем ссылки на объекты FileInfo.
Смысл в том, чтобы создать:
(1)список встречающихся в папке расширений файлов и
(2)список списков самих файлов, где каждый список имеет индекс такой же как у расширения этих файлов в списке
Это для того чтобы под рукой были всегда файлы с тем расширением, которое выберет пользователь (он может несколько выбрать) и пока он выбирает нужно показывать сколько файлов в итоге в его выборке.
Как правильно обратиться к элементу списка в списке списков? =)
Или подскажите как более правильно иметь под рукой наборы файлов, соответствующие расширению?
class MediaFileInfo
{
public DirectoryInfo dirInfo;
public FileInfo[] files;
public List<object> uniqueExtensions = new List<object>();
public List<object> filesByExt = new List<object>();
public MediaFileInfo(string pathString)
{
dirInfo = new DirectoryInfo(pathString);
files = dirInfo.GetFiles("*", SearchOption.AllDirectories);
// uniqueExtensions = getUniqueExtensions(); // new List<string>();
foreach(FileInfo file in files)
{
string ext = file.Extension.ToString();
int extensionIndex = uniqueExtensions.AddIfNotExists(ext);
if ((uniqueExtensions.Count - 1) == filesByExt.Count)
{
filesByExt.Add(new List<object>());
}
filesByExt[index].add // вот тут, например, хочу обратиться к списку списка, чтобы по индексу обратиться к списку объектов FileInfo и добавить туда очередной объект, но intelisense не дает методов списка, что не так???
// System.Diagnostics.Debug.Write(filesByExt[extensionIndex]);
}
System.Diagnostics.Debug.Write(filesByExt + Environment.NewLine);
System.Diagnostics.Debug.Write(uniqueExtensions[2] + Environment.NewLine);
}
public List<object> getUniqueExtensions()
{
return uniqueExtensions;
}
}Решение задачи: «Как работать со списком списков»
textual
Листинг программы
List<FileInfo>