あなたの質問に基づいて、あなたは[名前]、[年齢]、[お気に入りの色]をキーとして使用していると思います。これらのキーを使用してデータを辞書に入れる方法はたくさんありますが、本当の問題は、どのようにしてデータを取り戻すかということです。
辞書のキーは一意である必要があるため、キーとして使用するには、いくつかの一意のデータを見つける必要があります。あなたの場合、テストファイルは個人のリストのように見えます。各行には個人のデータが含まれています。したがって、最も自然な方法は、重複していない限り、「一意のデータ」が個人の名前である必要がある個人に関する行を含む辞書を作成することです。
ただし、実際には、人の名前は通常悪い選択です(時間の経過とともに変化する可能性があるだけでなく、同じ名前の可能性が非常に高いため)。そのため、代わりに人工キーが使用されます(行番号、GUIDなど)。
編集プロパティの数が異なる場合があることがわかります。したがって、ネストされた辞書を使用する必要があります。外側-「Persons」の場合は「Persons」、Personプロパティの場合は内側:
Dictionary<string, Dictionary<string, string>> person_property_value;
ただし、データ構造をより理解しやすくするには、Personクラス内に内部ディクショナリを配置する必要があります。
class Person{
public readonly Dictionary<string, string> props;
public Person()
{
props = new Dictionary<string, string>();
}
}
次に、Personを次のように追加します。
Person p = new Person();
p.props['Name'] = 'John Doe';
p.props['Age'] = 'age';
dictionary.Add('John Doe', p);
そしてそれを次のように取り戻します:
Person p = dictionary[Name];
複数の人が同じ名前を共有できるようにするには、辞書を次のように宣言します。Dictionary<string, List<Person>>