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