首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

讨论,LINQ去除重复的数据(某个字段有重复的数据)的Distinct方法解决方案

2013-01-25 
讨论,LINQ去除重复的数据(某个字段有重复的数据)的Distinct方法我写了下面一个类,然后在LINQ的查询语句后

讨论,LINQ去除重复的数据(某个字段有重复的数据)的Distinct方法
我写了下面一个类,然后在LINQ的查询语句后追加.Distinct(new MyComparer());
想实现查询的结果里,不存在姓名相同的行。
编译通过了,但使用它就报错说“不支持用于查询运算符“Distinct”的重载。”。

    class MyComparer : IEqualityComparer<User>
    {
        public bool Equals(User x, User y)
        {
            if (x == null && y == null)
            {
                return false;
            }
            else
            {
                return x.username == y.username;
            }
        }

        public int GetHashCode(User obj)
        {
            return obj.username.GetHashCode();
        }
    }


User是Model中的类,查询语句返回的是IQueryable<User>型的数据。
[解决办法]
如果不介意性能(或者说重复的数据非常少)可以直接执行查询后再Distinct。

q.AsEnumerbale().Distinct( ... );
[解决办法]
加油。。应当快实现了吧。

热点排行