c#中List的元素遍历(foreach)和去重复(distinct)

2021/11/3 22:11:33

本文主要是介绍c#中List的元素遍历(foreach)和去重复(distinct),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

c#中List的元素遍历(foreach)和去重复(distinct) 一、准备工作 定义实体类people public List PeopleList { get; set; } public class People { public string Name { get; set; } public int Age { get; set; } } 实体比较help类 public delegate bool CompareDelegate(T x, T y); public class ListCompare : IEqualityComparer { private CompareDelegate _compare; public ListCompare(CompareDelegate 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( (x,y)=> x.Name==y.Name&&x.Age==y.Age) ); 解析: ListCompare类用来比较List中的两个元素。它的构造函数中需要传入一个CompareDelegate。 可以看出,两个元素的比较,重点在CompareDelegate中。 定义: public delegate bool CompareDelegate(T x, T y); 其实,ListCompare实现了IEqualityComparer接口。 List data = myDalJD.GetAllDataList(); List list= new List(); list= datalist4.Select(p => p.name).ToList(); //只取name字段,重新生成新的List集合 this.cmbJdUserName.DataSource = list.Distinct().ToList(); //去重复,绑定数据后面要加ToList()   

这篇关于c#中List的元素遍历(foreach)和去重复(distinct)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程