C#-设置字典值的最佳方法';查字典?

C#-设置字典值的最佳方法';查字典?,c#,generics,dictionary,C#,Generics,Dictionary,我有一本字典,如下所示: var mapStudent = new Dictionary<string, Dictionary<List<Student>, Boolean>>; 这样做是更好的做法吗?提前谢谢。我很抱歉,如果你试图处理这样的结构,你的代码就走不远了。既然你在谈论最佳实践,我建议你重新思考你的结构,以避免无休止的头痛 如果需要将学生列表映射到单个属性,那么可能实际上需要对学生列表进行抽象。。。我打赌我们谈论的是一个班级(一个学校班级)。这样,

我有一本
字典
,如下所示:

var mapStudent = new Dictionary<string, Dictionary<List<Student>, Boolean>>;

这样做是更好的做法吗?提前谢谢。

我很抱歉,如果你试图处理这样的结构,你的代码就走不远了。既然你在谈论最佳实践,我建议你重新思考你的结构,以避免无休止的头痛

如果需要将学生列表映射到单个属性,那么可能实际上需要对学生列表进行抽象。。。我打赌我们谈论的是一个班级(一个学校班级)。这样,如果您明天必须处理类的一个新属性,则不必重写所有代码,只需向SchoolClass添加一个属性即可。要将所有布尔值初始化为true,只需将true设置为SchoolClass构造函数中属性的默认值

以同样的方式思考,您可能需要将映射到字符串的ShoolClass列表抽象为类似学校的内容


通过这种方式,代码简化了,并且更容易利用Linq的强大功能来执行复杂的操作和其他技术,当然还可以显示数据。

很抱歉,如果您尝试处理这样的结构,您的代码就走不远了。既然你在谈论最佳实践,我建议你重新思考你的结构,以避免无休止的头痛

如果需要将学生列表映射到单个属性,那么可能实际上需要对学生列表进行抽象。。。我打赌我们谈论的是一个班级(一个学校班级)。这样,如果您明天必须处理类的一个新属性,则不必重写所有代码,只需向SchoolClass添加一个属性即可。要将所有布尔值初始化为true,只需将true设置为SchoolClass构造函数中属性的默认值

思考的方式可能需要抽象一个映射到字符串的ShoolClass列表,以类似于学校


这样,代码就简化了,而且更容易利用Linq的强大功能来执行复杂的操作和其他技术,当然还可以呈现数据。

我投票将这个问题作为离题题来结束,因为它属于“开”的,老实说,这是一个令人厌恶的结构;-)我宁愿创建具有所有必需属性和方法的类。为什么要使用
mapStudent.Where(st=>st.Key==clasID).First().Value
而不是
mapStudent[classID]
?谢谢!我明白了。我投票结束这个问题,因为它属于离题,老实说,这是一个令人厌恶的结构;-)我宁愿创建具有所有必需属性和方法的类。为什么要使用
mapStudent.Where(st=>st.Key==clasID).First().Value
而不是
mapStudent[classID]
?谢谢!我明白了,谢谢!我明白了。我会重新考虑的,谢谢!我明白了。我会重新考虑。
...
var key_value = mapStudent.Where(st => st.Key == classID).First();
var listStudent_EditFlag = key_value.Value;
foreach (KeyValuePair<List<Student>, Boolean> pair in listStudent_EditFlag)
{
    listStudent_EditFlag[pair.Key] = true;
    break;
}
...