zoukankan      html  css  js  c++  java
  • List 去重操作

    list集合的去重操作

     List<string> listCatalogID = list.Select(a=>a.CatalogID).Distinct().ToList();

    代码
    
        class ListDistinctDemo
        {
            static void Main(string[] args)
            {
                List<Person> personList = new List<Person>(){
                    new Person(3),//重复数据
                    new Person(3),
                    new Person(2),
                    new Person(1)
                };
    
                //使用匿名方法
                List<Person> delegateList = personList.Distinct(new Compare<Person>(
                    delegate(Person x, Person y)
                    {
                        if (null == x || null == y) return false;
                        return x.ID == y.ID;
                    })).ToList();
    
                delegateList.ForEach(s => Console.WriteLine(s.ID));
    
                //使用 Lambda 表达式
                List<Person> lambdaList = personList.Distinct(new Compare<Person>(
                    (x, y) => (null != x && null != y) && (x.ID == y.ID))).ToList();
    
                lambdaList.ForEach(s => Console.WriteLine(s.ID));
    
                //排序
                personList.Sort((x, y) => x.ID.CompareTo(y.ID));
                personList.ForEach(s => Console.WriteLine(s.ID));
    
            }
        }
        public class Person
        {
            public int ID { get; set; }
            public string Name { get; set; }
            
            public Person(int id)
            {
                this.ID = id;
            }
        }
    
        public delegate bool EqualsComparer<T>(T x, T y);
    
        public class Compare<T> : IEqualityComparer<T>
        {
            private EqualsComparer<T> _equalsComparer;
    
            public Compare(EqualsComparer<T> equalsComparer)
            {
                this._equalsComparer = equalsComparer;
            }
    
            public bool Equals(T x, T y)
            {
                if (null != this._equalsComparer)
                    return this._equalsComparer(x, y);
                else
                    return false;
            }
    
            public int GetHashCode(T obj)
            {
                return obj.ToString().GetHashCode();
            }
        }
  • 相关阅读:
    JDBC-HikariCP
    11、JDBC-Druid
    JDBC-DBCP
    JDBC-C3P0
    第十七篇-使用RadioGroup实现单项选择
    第十六篇-使用CheckBox实现多项选择
    第一篇-ubuntu18.04访问共享文件夹
    第十五篇-EditText做简单的登录框
    第十四篇-ImageButton控制聚焦,单击,常态三种状态的显示背景
    第十三篇-通过Button设置文本背景颜色
  • 原文地址:https://www.cnblogs.com/xbblogs/p/4789706.html
Copyright © 2011-2022 走看看