【发布时间】:2013-03-28 19:59:30
【问题描述】:
这是我的数据表:
===============================================================
Question || Qid || Aid || answer_id || subject_id || marks
===============================================================
Q1 || 1 || 1 || 1 || 1 || 1
Q1 || 1 || 2 || 1 || 1 || 1
Q1 || 1 || 3 || 1 || 1 || 1
Q1 || 1 || 4 || 1 || 1 || 1
Q2 || 2 || 5 || 3 || 1 || 2
Q2 || 2 || 6 || 3 || 1 || 2
Q2 || 2 || 7 || 3 || 1 || 2
Q2 || 2 || 8 || 3 || 1 || 2
我想为每个问题获得不同的分数,例如问题 1 的分数是 1,问题 2 的分数是 2,但是如果我使用如下不同的关键字,我只会得到 1 或 2 一次
var total = (from r in dt.AsEnumerable()
where r.Field<Int64>("subject_id") == 1
select r.Field<Int64>("marks")).ToList().Distinct();
如果我不使用 distinct 我会在 1 个问题中获得 4 次标记字段。
我对 linq 不太了解,需要帮助。这个怎么做?
【问题讨论】:
-
你能展示你最终想要的结果吗?描述不清楚。
-
假设我有 10 个问题,5 个包含 1 分,另外 5 个包含 2 分,那么我想要 5 次 1 和 5 次 2。但是如果我使用上面的 distinct 我只得到 1 次 1 和1 次 2.
标签: c# winforms linq datatable