【发布时间】:2014-09-07 05:09:15
【问题描述】:
堆栈溢出,
您将如何构建代码以收集外部集合中的数据集合,并按数据类型(即数据集合中的每种数据类型)返回频率分布?我知道这个问题一定已经解决了很多次了。但是,我找不到答案。任何指导将不胜感激。
举例:
- 您的教室有 30 名学生,
- 每个学生完成考试
- 每门考试都包含许多问题
- 收集每个问题的数据(例如问题响应(整数)、完成问题所需的时间 (TimeSpan))
- 对于课堂、每个考试(例如第 1 题)、每个问题(例如第 1 题)、收集的每种数据类型(例如问题响应),您想要检索频率分布(例如 10 个响应) = 1, 15 个响应 = 2, 5 个响应 = 3, 0 个响应 = 4)。
以下是我迄今为止的想法......这显然是不正确的: 收集数据似乎很简单:
- 类类
- 学生班
- 考试班
- 问题类:IEnumerable(如果整数和 TimeSpan 值转换为双精度)
导致:
- 一个 Class 实例由一系列 Student 实例组成
- 每个 Student 实例由一个列表和许多 Exam 实例组成
- 每个考试实例由许多问题实例列表组成
- 每个问题实例都有属性(例如问题响应(整数)、完成问题所用的时间 (TimeSpan))
返回收集问题的数据的频率是我遇到困难的地方:
- 基准类
- DataType 类(即 Question 类的属性。我不确定。)
- 分发类
导致:
- 一个由字典组成的 Benchmark 实例>> ???
使用 LINQ,依次从每个学生那里获取每个问题:
List<Exam> Exams = from student in classroom
where student.examNumber == "x"
select student.exam.ToList();
List<Question> Questions = from question in exams
where question.Number == "x"
select question.ToList();
在同一考试中对同一问题的回答列表:
- 对于收集的每个数据类型(因此是 IEnumerable)
- 获取dataType系列
- 使用系列作为参数实例化新分布
- 添加到字典。
我知道此解决方案不完整且不正确。再次,任何指导将不胜感激。
问候 香农
【问题讨论】:
标签: c# linq dictionary class-design