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();
        }
    }
}

效果如下所示:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM