LINQ解决根据某个字段去重

想要List结果重复 的数据很简单,只要.Dinstinct()就好了

但是如果想要根据某个字段去除重复的数据,上面的方法就帮不上忙了,我们需要重写一个方法,直接上例子吧

[Serializable]
    public class HomePageUserModel
    {
        public int UserID { get; set; }
        public string TitleUserName { get; set; }
        public string ShowUserName { get; set; }
        public DateTime? ExcuteTime { get; set; }
    }
    [Serializable]
    public class HomePageUserModelComparer : EqualityComparer<HomePageUserModel>
    {
        public override bool Equals(HomePageUserModel x,HomePageUserModel y)
        {
            if (x == null && y == null)
            {
                return false;
            }
            else
            {
                return x.TitleUserName == y.TitleUserName;
            }
        }

        public override int GetHashCode(HomePageUserModel obj)
        {
            return obj.TitleUserName.GetHashCode();
        }
    }

这儿调用就可以完成自定义字段去重的效果

时间: 2024-10-19 09:34:15

LINQ解决根据某个字段去重的相关文章

mysql字段去重方式

一直找不出某个字段去重的前提下,还可以显示其他字段的数据 下面是解决方法: SELECT *, COUNT(DISTINCT( province)) FROM area_info WHERE type=1000 GROUP BY province

对数据库表中的某一字段去重分组排序

1.问题背景    某数据库t_tab_ab中有两个字段a和b,如下所示:    查询前:                 查询后:    a     b                  a     b    1     2                  1     2    1     3                  2     3    1     4                  3     4    1     5    2     3    2     4    2  

sql 语句查询 按某字段去重 保留按某个字段排序top1

例子:      建表: create table tablename  (id int identity(1,1),attachid int,name varchar(10)) insert into tablename  values(23,'sss') insert into tablename   values(33,'sdfs') insert into tablename   values(33,'4434') insert into tablename   values(45,'d

list集合中指定字段去重

在开发中,有时会需要指定字段去重,以下为实现方法: 假设有个房地产权的类,其中宗地代码ZDDM值重复,而我们在前端页面显示时,只需要一条数据,因为公共字段都一样: IEqualityComparer需引入程序集——using System.Collections; //集合指定字段去重(宗地代码) List<FDCQClient> resultFDCQ = new List<FDCQClient>(); var resultdis=resultFDCQ.Distinct(new M

根据多字段去重

有重复数据主要有一下几种情况: 1.存在两条完全相同的纪录 这是最简单的一种情况,用关键字distinct就可以去掉 example: select distinct * from table(表名) where (条件) 2.存在部分字段相同的纪录(有主键id即唯一键) 如果是这种情况的话用distinct是过滤不了的,这就要用到主键id的唯一性特点及group by分组 example: select * from table where id in (select max(id) from

SQLServer单个字段去重的方法

单个字段去重并选出每个分组里面的最大值对应的行: Row_Number去重: select * from (select *,row_number()over(partition by Servername order by Check_Date desc) Suquence from AuditItem) s where s.Suquence=1 Croup by写法: select * from [dbo].[AuditItem] where Check_Date in (select Ma

关联数组根据某个字段去重

/* * 关联数组根据某个字段去重 * */ public function array_unset_tt($arr,$key='mobile'){ //建立一个目标数组 $res = array(); foreach ($arr as $value) { //查看有没有重复项 if(isset($res[$value[$key]])){ unset($value[$key]); //有:销毁 }else{ $res[$value[$key]] = $value; } } return $res

PHP二维数组多字段去重

二位数组多字段去重 不指定一个字段去重,判断所有字段是否有重复 $arr = [ 0 => [ 'name' => 'name1', 'age' => '10' ], 1 => [ 'name' => 'name1', 'age' => '11' ], 2 => [ 'name' => 'name2', 'age' => '10' ], 3 => [ 'name' => 'name2', 'age' => '10' ] ]; 方法:

解决常见伪静态url去重

常见的伪静态链接: 1.http://xue.zbj.com/live/livecollege/list/237 解决方法,以 / 分割参数,生成list,用一次pop之后(比较倒数第二个参数是否相同),以此递进 1 #url形式为http:// 开头 2 for i in ulist: 3 line = i.split('/')[3:] 4 if len(line) > 0: 5 line.pop() # 一次pop 比较 除倒数第一个参数外,其余参数是否相同,以 / 分割 6 key = s