LINQ怎么根据“某个字段”去除重复数据查询(急求答案)

我在查询结果后用.distinct()没有用,这个应该只是去除所有字段重复的数据吧... 我在查询结果后用.distinct()没有用,这个应该只是去除所有字段重复的数据吧 展开
 我来答
wbybbvjai
2013-11-27 · TA获得超过136个赞
知道答主
回答量:63
采纳率:0%
帮助的人:20.6万
展开全部
Distinct方法的第二重载可以
Enumerable.Distinct<TSource> (IEnumerable<TSource>, IEqualityComparer<TSource>),
例如数据类为

class School
{
public int Id { get; set; }
public string Name { get; set; }
//是否重点学校
public bool IsKeySchool { get; set; }
}
实现IEqualityComparer<School>的比较器类为

class SchoolComparer : EqualityComparer<School>
{
public override bool Equals(School x, School y)
{
return x.IsKeySchool==y.IsKeySchool;
}
public override int GetHashCode(School obj)
{
return obj.IsKeySchool.GetHashCode();
}
}
原始列表为
var schoolList = new List<School> {
new School{Id=1, Name="三中",IsKeySchool=true},
new School{Id=2, Name="五中",IsKeySchool=true},
new School{Id=3, Name="十中",IsKeySchool=false},
new School{Id=4, Name="十五中",IsKeySchool=true},
new School{Id=5, Name="二十中",IsKeySchool=false},
};
执行

var tempList = schoolList.Distinct(new SchoolComparer());
结果就只有两条“三中”和“十中”
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式