解而不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