C# List使用District去重复数据
2016-01-13 13:13
513 查看
class ListDistinctDemo { static void 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) return false; 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)); } } public class Person { public int ID { get; set; } public string Name { get; set; } public Person(int id) { this.ID = id; } } public delegate bool EqualsComparer<T>(T x, T y); public class Compare<T> : IEqualityComparer<T> { private EqualsComparer<T> _equalsComparer; public Compare(EqualsComparer<T> equalsComparer) { this._equalsComparer = equalsComparer; } public bool Equals(T x, T y) { if (null != this._equalsComparer) return this._equalsComparer(x, y); else return false; } public int GetHashCode(T obj) { return obj.ToString().GetHashCode(); } }
相关文章推荐
- C#源代码—在文本框中随意输入一个日期,单机“确定”按钮时显示这一天是星期几?
- C#源代码—猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾就多吃了一个。第二天早上又将剩下的桃子吃了一半,还是不过瘾又多 吃了一个。以后每天都吃前一天剩下的一半再加一个。到第10天刚好剩一个。
- C#源代码—使用哈希表保存学生信息
- C#源代码—委托的演示,利用多路广播机制优化
- C#冒泡排序
- C#源代码—演示抽象类与抽象属性的使用,命名空间的使用
- c#源代码—演示类的继承性,类的多态性
- C#源代码—演示静态构造函数的使用
- C# 串口操作系列(4) -- 协议篇,文本协议数据解析(转)
- 命令调用C#程序, 路径参数解析错误
- c#多线程防止界面卡死
- C#源代码—求最大数,形参为普通数组,实参必须为数组名
- C#使用七牛云存储上传下载文件、自定义回调
- C#源代码—值类型参数演示,引用类型参数演示
- C#对七牛云的操作
- C#圆半径圆的周长,使用嵌套类型计算圆面上点到圆心的距离
- C#源代码—统计从键盘输入一行字符英文字母的个数
- C#源代码—在windows窗体中添加一个名为lblShow的Lable控件4,创建可变字符串,字符串转换为字符型
- C#源代码—从数组x复制到数组y,将数组x的元素排序
- C#源代码—声明委托,通过委托对象调用所指向的方法