c#中List的元素遍历(foreach)和去重复(distinct)
2017-12-01 17:31
621 查看
c#中List的元素遍历(foreach)和去重复(distinct)
一、准备工作
定义实体类peoplepublic List<People> PeopleList { get; set; } public class People { public string Name { get; set; } public int Age { get; set; } 4000 }
实体比较help类
public delegate bool CompareDelegate<T>(T x, T y); public class ListCompare<T> : IEqualityComparer<T> { private CompareDelegate<T> _compare; public ListCompare(CompareDelegate<T> d) { this._compare = d; } public bool Equals(T x, T y) { if (_compare != null) { return this._compare(x, y); } else { return false; } } public int GetHashCode(T obj) { return obj.ToString().GetHashCode(); } }
二、List.ForEach()
假设需要对集合中的每个元素进行运算(将每个人的年龄增加10岁)PeopleList.ForEach(p=>{ p.Age = p.Age + 10; });
三、List.Distinct()
假设需要将姓名和年龄相同的元素过滤掉PeopleList.Distinct(new Common.List.ListCompare<People>( (x,y)=> x.Name==y.Name&&x.Age==y.Age) );
解析:
ListCompare类用来比较List中的两个元素。它的构造函数中需要传入一个CompareDelegate。可以看出,两个元素的比较,重点在CompareDelegate中。
定义: public delegate bool CompareDelegate(T x, T y);
其实,ListCompare实现了IEqualityComparer接口。
相关文章推荐
- c#一个list去掉其中重复元素
- C#使用Hashset过滤重复的List元素
- C#遍历List并删除元素的方法概述
- C#遍历List并删除某个或者几个元素的方法
- C# 去掉List重复元素的方法
- C# 遍历List 并删除某个元素
- 实验心得:C#中当使用foreach对集合进行遍历时,不得改变集合的大小和元素的值
- foreach遍历list删除元素一定会报错?
- c# Array或List有个很实用的ForEach方法,可以直接传入一个方法对集合中元素操作
- C#中list泛型中防止添加重复元素的解决办法(2014-06-11)
- 对数组的每个元素仍是数组的遍历方法,c#,foreach,for
- 黄聪:C#使用能够foreach对hashtable、List遍历时“集合已修改;可能无法执行枚举操作。”错误
- 使用 forEachIndexed 带下标遍历 list;这样我们可以使用 forEach 来修改 list 的元素了
- FCL应用技巧之------使用List<T>的Distinct()去除重复元素
- C# 去掉List重复元素的方法
- C# 去掉List重复元素的方法
- C#遍历List并删除某个或者几个元素的方法
- 遍历List删除重复元素的方案探究
- 【C#】遍历List列表的同时,移除访问到的元素
- c# list 删除重复元素