代码

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

 转自:http://www.cnblogs.com/csharpx/archive/2010/05/27/1745122.html

最新文章

  1. 子类可以有跟父类中同名的方法,但是会重写父类中的方法,甚至是root class中的方法
  2. UE4.11新特性:胶囊体阴影
  3. loadrunner-VUserGen录制脚本及回放时注意的问题
  4. [Android Pro] How to get recent tasks on Android “L”?
  5. 【JAVA 其它流对象】
  6. [curator] Netflix Curator 使用
  7. 视差效果原理 background-attachment:fixed
  8. jQuery中ready与load事件
  9. ccnu-线段树-简单的区间更新(三题)
  10. 谈谈 char *num=&quot;123&quot;;和char num[4]=&quot;123&quot;;的区别
  11. mysql中实现oracle中的rowid功能
  12. 如何在Sql2008中获取表字段属性和注释?
  13. flume【源码分析】分析Flume的启动过程
  14. C#5 复习总结循环 迭代和穷举
  15. hibernate 及缓存机制
  16. SharePoint 2013: The &quot;New Web Application&quot; button is disabled is the central administration
  17. mysql python 交互
  18. Python解释器有哪些?Python解释器种类
  19. 批量杀掉多个pid文件中记录的pid进程, 并集成到shell脚本中
  20. Django【进阶篇】

热门文章

  1. node.js request请求url错误:证书已过期 Error: certificate has expired
  2. Django之ajax(jquery)封装(包含 将 csrftoken 写入请求头方法)
  3. UIView的常见方法
  4. axios取消接口请求
  5. 判断一个js变量是否为数组
  6. 认识BufferedReader的readLine、ready,以及InputStream的available
  7. Java对数组的复制[转]
  8. MinIO简介和java Api的使用
  9. 详解Java12新增语法switch表达式
  10. Pandas常用操作 - 新增数据列