使用linq到dataset / datatable从数据集/表中获取不同的记录

时间:2016-03-01 05:46:24

标签: asp.net linq

我从数据库中获取记录并将结果存储在数据集中。

我的数据集就像这样

Sid Table userid par1 par2 par3
274 tbl1  43     0    0    0
232 tbl1  43     1    2    0
232 tbl1  43     1    2    1
232 tbl2  43     1    2    0
232 tbl2  43     1    2    1

我想显示所有6列但不同的记录.Distinct应该在Sid,Table和userid上。我想要这样的输出

Sid Table userid par1 par2 par3
 274 tbl1  43     0    0    0
 232 tbl1  43     1    2    0
 232 tbl2  43     1    2    0

是否可以通过linq to dataset / datatable。 我无法在数据集上获得AsEnumerable方法,但获得了数据表。

1 个答案:

答案 0 :(得分:1)

我对这个问题感到困惑,但这是否是你想要的?

yourDatatable.Rows.Cast<DataRow>()
.GroupBy(r => new { Sid = r.Field<int>("Sid"), userid = r.Field<int>("userid"), Table = r.Field<string>("Table") })
.Select(e => e.FirstOrDefault())
.Select(grp => new
{
    Sid = grp.Field<int>("Sid"),
    userid = grp.Field<int>("userid"),
    Table = grp.Field<string>("Table"),
    par1 = grp.Field<int>("par1"),
    par2 = grp.Field<int>("par2"),
    par3 = grp.Field<int>("par3")
});