zoukankan      html  css  js  c++  java
  • C# List集合去除重复数据

    实例如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Windows.Forms;
    
    namespace 集合去除重复数据
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                List<Test> list = InitList();
                BindData(list);
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                List<Test> list = InitList();
                BindData(list);
            }
    
            private void BindData(List<Test> list)
            {
                this.lvList.Items.Clear();
                foreach (Test item in list)
                {
                    this.lvList.Items.Add(item.Name);
                }
            }
    
            private List<Test> InitList()
            {
                List<Test> list = new List<Test>();
                list.Add(new Test { Name = "张三" });
                list.Add(new Test { Name = "张三1" });
                list.Add(new Test { Name = "张三2" });
                list.Add(new Test { Name = "张三3" });
                list.Add(new Test { Name = "张三" });
                list.Add(new Test { Name = "张三1" });
                return list;
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Test t = new Test();
                List<Test> list = InitList().Distinct(new DistinctTest<Test>()).ToList();
                BindData(list);
            }
        }
    
        class Test
        {
            public string Name { get; set; }
        }
    
        class DistinctTest<TModel> : IEqualityComparer<TModel>
        {
            public bool Equals(TModel x, TModel y)
            {
                //Test
                Test t = x as Test;
                Test tt = y as Test;
                if (t != null && tt != null) return t.Name == tt.Name;
                return false;
            }
    
            public int GetHashCode(TModel obj)
            {
                return obj.ToString().GetHashCode();
            }
        }
    }
    

    效果如下所示:

  • 相关阅读:
    异步编程
    写代码写至最有面向对象味道
    GitHub上整理
    用CQRS+ES实现DDD
    前端开发
    让低版本的IE浏览器 强制渲染为IE8 或者 以上 浏览器模式
    NHibernate系列
    hadoop搭建开发环境及编写Hello World
    Linux date -s(转)
    即时编译和打包您的 Groovy 脚本(转)
  • 原文地址:https://www.cnblogs.com/YYkun/p/11570706.html
Copyright © 2011-2022 走看看