2013-07-26 36 views
1

到目前为止,我有这个行中的值计数> 1时获得不同的行吗?

var GetSetRows = from DataRow dr in MyTable.Rows 
    group dr by dr.Field<string>("SetNumber") into grp 
    from rows in grp 
    where grp.Count() > 1 
    select rows; 

,这工作返回的所有行上的SetNumber是另一行。

我该如何修改这个值,使Count> 1的每个SetNumber返回1行?

回答

4

使用Enumerable.First

var GetSetRows = from DataRow dr in MyTable.Rows 
       group dr by dr.Field<string>("SetNumber") into grp 
       where grp.Count() > 1 
       select grp.First(); 
1
var GetSetRows = MyTable.Rows.GroupBy(x => x.Field<string>("SetNumber")) 
        .Where(g => g.Count() > 1) 
        .Select(g => g.First()); 
+1

这将返回当计数> 1的第一组,不是吗?我认为OP要带回第一排 – LukeHennerley

+0

谢谢,编辑。 –

1
var GetSetRows = MyTable.AsEnumerable() 
         .GroupBy(r => r.Field<string>("SetNumber")) 
         .Where(g => g.Count() > 1) 
         .Select(g => g.First()); 
相关问题