Я просто делаю это либо список, либо словарь. Я покажу оба.
class Example
{
public List<FileInfo> FileList { get; set; }
public Dictionary<string, FileInfo> Files { get; set; }
public Example()
{
FileList = new List<FileInfo>();
Files = new Dictionary<string, FileInfo>();
}
}
Теперь вы будете использовать свойство, как если бы оно было фактическим объектом List или Dictionary.
var obj = new Example();
obj.FileList.Add(new FileInfo("file.txt")); // List<>
obj.Files.Add("file.txt", new FileInfo("file.txt")); // Dictionary<>
// also
obj.Files["file2.txt"] = new FileInfo("file2.txt"); // Dictionary<>
// fetch
var myListedFile = obj.FileList[0]; // List<>
var myFile = obj.Files["file.txt"]; // Dictionary<>
Я предпочитаю словарный подход.
Обратите внимание, что, поскольку свойство общедоступно, вы также можете заменить весь список или словарь.
obj.Files = new Dictionary<string, FileInfo>();
// or
var otherFiles = new Dictionary<string, FileInfo>();
otherFiles["otherfile.txt"] = new FileInfo("otherfile.txt");
obj.Files = otherFiles;
Если вы сделали свойство частным набором, то вы все равно могли бы вызвать Add (), но не переназначать сам список или словарь.