2013-09-23 40 views
0

我一直试图让这个查询长时间工作!
表:
ID - 基本 - 日期
1 - 1991 - 2013年9月13日
2 - 1992 - 2013年1月12日
3 - 1990 - 2013年9月13日
4 - 1998 - 2013-02-11使用Linq的不同行使用Linq

我想获取具有不同日期的所有行。为例如:
所需的输出
ID - 基本 - 日期
1 - 1991 - 2013年9月13日
2 - 1992 - 2013年1月12日
4 - 1998 - 2013年2月11日

我到目前为止所显示的所有记录和那不是我想要的。
我的代码:

public IEnumerable<tableName> GetAllRecords() 
    { 
     var records = _tableName.GetAll().GroupBy(tb => tb.Date).SelectMany(tb => tb.Distinct()); 

     return records; 
    }  

如何获得所需的输出?

回答

0
public IEnumerable<tableName> GetAllRecords() { 
    var records = _tableName.GetAll() 
        .GroupBy(tb => tb.Date) 
        .Select(g=>g.First()); 
    return records; 
} 

注意:它仍在究竟你想要什么,我们有BaseID部分重复的行是不同不清楚,所以你可能有一些标准或规则在他们之间做出选择一组Date

+0

完美!只需要用FirstOrDefault()替换First()。谢谢你为我节省了很多时间! – smons

+0

我不得不做的是摆脱重复日期的行。您的解决方案运作良好干杯。 – smons

+0

@smons你不需要'FirstOrDefault()',因为'First()'总是'成功','Group'总是至少有'1个元素'。 –