zoukankan      html  css  js  c++  java
  • List<T>.Distinct()

    class ListDistinctDemo
        {
           
    staticvoid 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) returnfalse;
                       
    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));

            }
        }
       
    publicclass Person
        {
           
    publicint ID { get; set; }
           
    publicstring Name { get; set; }
           
           
    public Person(int id)
            {
               
    this.ID = id;
            }
        }

       
    publicdelegatebool EqualsComparer<T>(T x, T y);

       
    publicclass Compare<T> : IEqualityComparer<T>
        {
           
    private EqualsComparer<T> _equalsComparer;

           
    public Compare(EqualsComparer<T> equalsComparer)
            {
               
    this._equalsComparer = equalsComparer;
            }

           
    publicbool Equals(T x, T y)
            {
               
    if (null!=this._equalsComparer)
                   
    returnthis._equalsComparer(x, y);
               
    else
                   
    returnfalse;
            }

           
    publicint GetHashCode(T obj)
            {
               
    return obj.ToString().GetHashCode();
            }
        }

  • 相关阅读:
    Spring+Spring MVC+Hibernate框架搭建实例
    数据结构:串
    为什么java中用枚举实现单例模式会更好
    验证码原理分析及实现
    Servlet监听器——实现在线登录人数统计小例子
    IntelliJ IDEA 远程调试 Tomcat 的方法
    SQL注入的一些技巧分享
    Java中String与byte[]的转换
    JavaSE基础:集合类
    二叉树的非递归遍历
  • 原文地址:https://www.cnblogs.com/ziyan22/p/3343955.html
Copyright © 2011-2022 走看看