List去重的三种种方法--C#

List去重–C#

class List去重的方法//List如何去重
    {
        #region
        //自定义去重方法
        public static void Main() => useDistinctMethod();
        public static void diyMethod()
        {
            // 创建并给 List 赋值
            List<Person> list = new List<Person>();
            list.Add(new Person{ name= "李四" , password = "123456", age = 20 });
            list.Add(new Person{ name = "张三", password = "123456", age = 18 });
            list.Add(new Person{ name = "王五", password = "123456", age = 22 });
            list.Add(new Person{ name = "张三", password = "123456", age = 18 });
            // 去重操作
            List<Person> newList = new List<Person>(list.Count());
            list.ForEach(i=> {
                if (!newList.Contains(i))
                { 
                    newList.Add(i);
                }
            });
            newList.ForEach(p => Console.WriteLine($"{ p.name },{ p.password },{ p.age }"));
            Console.ReadKey();
        }
        #endregion
        #region
        //用hashset唯一真值去重
        public static void useSetMethod()
        {
            // 创建并给 List 赋值
            List<Person> list = new List<Person>();
            list.Add(new Person { name = "李四", password = "123456", age = 20 });
            list.Add(new Person { name = "张三", password = "123456", age = 18 });
            list.Add(new Person { name = "王五", password = "123456", age = 22 });
            list.Add(new Person { name = "张三", password = "123456", age = 18 });
            // 去重操作
            HashSet<Person> newList = new HashSet<Person>(list);
            foreach (Person p in newList)
            {
                Console.WriteLine($"{ p.name },{ p.password },{ p.age }");
            }
            Console.ReadKey();
        }
        #endregion
        #region
        //用Distinct去重
        public static void useDistinctMethod()
        {
            // 创建并给 List 赋值
            List<Person> list = new List<Person>();
            list.Add(new Person { name = "李四", password = "123456", age = 20 });
            list.Add(new Person { name = "张三", password = "123456", age = 18 });
            list.Add(new Person { name = "王五", password = "123456", age = 22 });
            list.Add(new Person { name = "张三", password = "123456", age = 18 });
            // 去重操作
            var newList = list.Distinct();
            foreach (Person p in newList)
            {
                Console.WriteLine($"{ p.name },{ p.password },{ p.age }");
            }
            Console.ReadKey();
        }
        #endregion
    }
    struct Person
    {
        public String name { get; set; }
        public String password { get; set; }
        public int age { get; set; }
    }
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值