如何在LINQ中找到`Distinct`记录?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在LINQ中找到`Distinct`记录?相关的知识,希望对你有一定的参考价值。
我想在实体框架中找到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();
以上是关于如何在LINQ中找到`Distinct`记录?的主要内容,如果未能解决你的问题,请参考以下文章