2015-04-24 165 views
1

我想在實體框架中找到不同的記錄。我的代碼如下如何在LINQ中查找不同的記錄?

var distinctYear = _objCalRepos 
    .GetDetails() 
    .Select(o => new CalendarList { Mdate = o.Mdate.Year.ToString() }) 
    .Distinct() 
    .ToList(); 

ddlYear.DataSource = distinctYear; 
ddlYear.DataTextField = "Mdate"; 
ddlYear.DataValueField = "Mdate"; 
ddlYear.DataBind(); 

這裏獨特的不起作用。它會返回所有條目(重複)。

回答

2

獨特不起作用,可能是因爲CalendarList不可比。 試試這個:

var distinctYear = _objCalRepos 
    .GetDetails() 
    .Select(o => o.Mdate.Year.ToString()) 
    .Distinct() 
    .AsEnumerable() 
    .Select(o => new CalendarList { Mdate = o })) 
    .ToList(); 
0

您可以使用GroupBy

var distinctYear = _objCalRepos 
    .GetDetails() 
    .Select(o => new CalendarList { Mdate = o.Mdate.Year.ToString() }) 
    .GroupBy(cl => cl.Mdate) 
    .Select(g => g.First()) 
    .ToList(); 
+0

感謝您的解決方案還正常工作 –

相關問題