2013-09-23 41 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個元素'。 –