ソリューション
Dictionary<int, List<string>> group = new Dictionary<int, List<string>>();
List<string> newList = new List<string> { "Orange", "Strawberry", "Banana"};
group.Add(1, newList); //Group of Fruits
newList = new List<string> { "Hulk", "Spiderman", "Batman" };
group.Add(2, newList); //Group of Super-Heroes
int GroupKey = 0;
foreach(var groupItem in group)
{
foreach(var stringValue in groupItem.Value)
{
if(stringValue == "Spiderman")
{
GroupKey = groupItem.Key;
break;
}
}
if(GroupKey > 0)
break
}
//あなたのケースで使用する必要があると思われる2番目の解決方法 (すべての学生には1つのキー(数値)しかないので、おそらくあなたが作業している場合のみ、文字列とリストを使用する方が良いでしょうあなたが学生の名前で辞書を照会し、紙のコードを取得したい場合は、1番目のソリューションを検討すべきである学生のグループ)
Dictionary<int, string> enrolledStudents = new Dictionary<int, string>();
enrolledStudents.Add(1, "Jamie Fox"); //Student 1
enrolledStudents.Add(2, "Arnold Spenser"); //Student 2
enrolledStudents.Add(3, "Jack & Jones"); //Student 3
int StudentNumber = 0;
foreach (var student in enrolledStudents)
{
if(student.Value == "Arnold Spenser")
{
StudentNumber = student.Key;
break;
}
}
は、キーが生徒の名前と紙のコードがある辞書を使用してみてください値。次に、単純にif(enrolledStudents.ContainsKey(studentName))がenrolledStudents [studentName]を返します。 –
burkay
しかし、1人の学生に複数の紙がある場合はどうしますか?彼らは複数の論文に登録するからです。 – Donald
良い点ですから、n対nの関係について言及します。デザインの意思決定が必要なように見えます。あなたの質問のほとんどが「特定の論文に登録した人」であれば、それをあなたの方法で保ち、@ M.kazem Akhgaryの答えを下記のように使用します。そして、あなたの質問のほとんどが「特定の学生が登録した論文」でしょう。値のタイプをListに変更した後で両方のタイプの問合せを頻繁に行う場合は、2つのディクショナリを宣言して両方を同時に使用できますが、データの一貫性には注意してください。 –
burkay