簡體   English   中英

如何在LINQ中找到`Distinct`記錄?

[英]How to find `Distinct` records in LINQ?

我想在實體框架中找到distinct記錄。 我的代碼如下

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();

這里區別不起作用。 它將返回所有條目(重復)。

區別不起作用,可能是因為CalendarList無法比較。 嘗試這個:

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

您可以使用GroupBy

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM