我正在从数据库加载数据并使用详细记录填充数据集,其中studentId列在许多记录中重复。还使用以下代码从数据集中获取不同的数据行:
tbl=tbl.AsEnumerable()
.GroupBy(row => row.Field<int>("studentId"))
.Select(group =>group.First())
.CopyToDataTable();
这将返回唯一数据行中的所有列。 我的问题,如何只选择特定的列? say studentId,studentName,birthdate?
答案 0 :(得分:0)
tbl=tbl.AsEnumerable()
.GroupBy(row => row.Field<int>("studentId"))
.Select(group =>group.First())
.Select(s=> new {
s.studentId,
s.studentName,
s.birthdate
})
.CopyToDataTable()
答案 1 :(得分:0)
你需要使用像这样的选择:
tbl = tbl.AsEnumerable()
.GroupBy(row => row.Field<int>("studentId"))
.Select(group => new {
studentId = group.FirstOrDefault().studentId,
studentName = group.FirstOrDefault().studentName,
birthdate = group.FirstOrDefault().birthdate
})
.CopyToDataTable();
答案 2 :(得分:0)
请尝试下面的代码,我没有尝试编辑。
tbl=tbl.AsEnumerable()
.GroupBy(row => row.Field<int>("studentId"))
.Select(new {id = row.Field<int>("studentId"),name =
row.Field<int>
("studentName")}). Distinct ()
.CopyToDataTable();