Поскольку у вас есть несколько предопределенных фрагментов информации, которые вы хотите связать с каждым экземпляром значения, я бы начал с определения структуры для хранения информации, необходимой для каждого файла:
public struct CustomFileInfo //pick a name that avoids conflicts with System.IO
{
public readonly int FileId;
public readonly string FileName;
public readonly string Path;
// constructor
public CustomFileInfo(int fileId, string fileName, string path)
{
this.FileId = fileId;
this.FileName = fileName;
this.Path = path;
}
}
А затем ябудет использовать универсальную коллекцию (например, List<T>
) для хранения экземпляров этой структуры:
List<FileInfo> myFiles = new List<FileInfo>();
В качестве альтернативы, вы можете использовать Dictionary<TKey, TValue>
с FileId
в качестве ключа и структурой FileInfo
в качестве значения.Например:
Dictionary<int, FileInfo> myFiles = new Dictionary<int, FileInfo>();
Преимущество словаря состоит в том, что он обеспечивает более быстрое время поиска при поиске файла по его идентификатору.Это связано с тем, что словарь реализован внутри с использованием хеш-таблицы.
РЕДАКТИРОВАТЬ: Обратите внимание, что изменяемые структуры являются злыми .Если вам необходимо изменить отдельные элементы информации, которые описывают файл (и я не могу представить, почему вы это сделаете), вы должны объявить CustomFileInfo
как class
вместо struct
.