C# 如何根据datatable中的某个列值获取不同的列值?

C# 如何根据datatable中的某个列值获取不同的列值?,c#,winforms,linq,datatable,C#,Winforms,Linq,Datatable,这是我的数据表: =============================================================== Question || Qid || Aid || answer_id || subject_id || marks =============================================================== Q1 || 1 || 1 || 1 || 1

这是我的数据表:

===============================================================    
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();
var total=(从dt.AsEnumerable()中的r开始)
其中r.Field(“subject_id”)==1
选择r.Field(“marks”).ToList().Distinct();
如果我不使用distinct,我会为一个问题在字段中得到4次分数


我对林克了解不多,需要帮助。如何做到这一点

最后,我在一位大四学生的帮助下做了这件事

var total = (from r in dt.AsEnumerable()
             where r.Field<Int64>("subject_id") == 1
             select new { marks = r.Field<Int64>("marks"), QID = r.Field<Int64>("QID") }).ToList().Distinct(); 
var total=(从dt.AsEnumerable()中的r开始)
其中r.Field(“subject_id”)==1
选择新的{marks=r.Field(“marks”),QID=r.Field(“QID”)}.ToList().Distinct();
您可以执行以下操作:

    var total = (from r in dt.AsEnumerable()
                 where r.Field<Int64>("subject_id") == 1
                 select new { Question = r.Field<string>("Question"), Marks = r.Field<Int64>("marks") }).ToList().Distinct();
    string strC = "";
    foreach (var item in total)
    {
        strC = strC + "<br/>" + "Question: " + item.Question + " Marks: " + item.Marks;

    }
    Response.Write(strC);

你能展示你最终想要的结果吗?描述不清楚。假设我有10个问题,5个包含1分,其他5个包含2分,那么我想要5乘以1和5乘以2。但如果我像上面一样使用distinct,我只得到1次1和1次2。
Question: Q1 Marks: 1
Question: Q2 Marks: 2