【发布时间】:2015-07-21 08:13:08
【问题描述】:
我的数据看起来像这样,例如:
| MemberID | Username | QuestionID | Question | Answer |
|----------|----------|------------|------------------|--------|
| 58 | John | 1 | Recommend This? | Yes |
| 58 | John | 2 | How much rating? | 10 |
| 59 | Zess | 1 | Recommend This? | No |
| 59 | Zess | 2 | How much rating? | 8 |
有这样的课程(请忽略某些字段):
class reportlist
{
public string MemberID { get; set; }
public string Username { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public int QuestionID { get; set; }
public string Question { get; set; }
public string Answer { get; set; }
public DateTime Submitted_On { get; set; }
public int TotalPoint { get; set; }
}
并有一个 mysql reader 可以将数据添加到报告列表中:
while (reader.Read())
{
reportlist.Add(new reportlist() { MemberID = reader["MemberID"].ToString(), Username = reader["Username"].ToString(),
Name = reader["Name"].ToString(), Email = reader["Email"].ToString(), QuestionID = int.Parse(reader["QuestionID"].ToString()), Question = reader["Question"].ToString(),
Answer = reader["Answer"].ToString(), Submitted_On = DateTime.Parse(reader["CreationDate"].ToString()), TotalPoint = int.Parse(reader["TotalPoint"].ToString()) });
}
现在卡住了,我尝试使用 Linq 进行查询:
var groupedList = reportlist
.GroupBy(u => u.QuestionID, u => u.MemberID)
.ToList();
DataTable dt = new DataTable();
foreach (var group in groupedList)
{
//add columns, rows to datatable, stuck here
}
不确定如何将这些结果获取到数据表中。基本上,我想将问题分组并使其成为列,并将所有数据添加到数据表中以形成这些结果(示例):
| MemberID | Username | Recommend This? | How much rating? |
| 58 | John | Yes | 10 |
| 59 | Zess | No | 8 |
请指导如何获得结果或更好的解决方案?我被困了很长一段时间,因为我不擅长 linq。我确实尝试过四处搜索,结果并不多,可能不太了解它是如何工作的。
附加信息:最终数据表用于 EPPlus 库(生成 excel 电子表格)
【问题讨论】:
标签: c# mysql asp.net linq datatable