リストまたは辞書にするだけです。両方見せます。
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() を呼び出すことはできますが、リストまたは辞書自体を再割り当てすることはできません。