解而不LINQ
// 1-ST溶液
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-ST溶液)
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))return enrolledStudents [studentName]; –
burkay
但是如果每個學生都有多張紙,該怎麼辦?因爲他們將參加多個論文。 – Donald
好點,所以你提到一個n對n的關係。看起來你需要做出設計決定。如果大部分查詢都是「誰加入了特定論文」,請按照以下方式使用@ M.kazem Akhgary的答案,如果大多數查詢將是「特定學生註冊的論文」,則使用在將值類型更改爲列表後進行。如果您經常進行這兩種查詢,則可以同時使用兩種字典來聲明兩個字典,但要注意數據的一致性。 –
burkay