C# 去掉List重复元素的方法
来源:互联网 发布:数据中心网络架构 编辑:程序博客网 时间:2024/05/19 22:02
比如linq Distinct 等等都可以,看看网上的这个例子:去掉modelList中title重复的内容,不区分大小写
class Program { static void Main(string[] args) { List<Model> modelList = new List<Model>() { new Model() { ID = 1, Title = "abcde" }, new Model() { ID = 2, Title = "ABCDE" }, new Model(){ ID = 3, Title = "AbcdE" }, new Model() { ID = 4, Title = "A" }, new Model() { ID = 5, Title = "a" } }; Console.Read(); } } public class Model { public int ID { get; set; } public string Title { get; set; } }
解决方案一:这里比较的前提是对象的哈希代码相等。否则不会比较,因为哈希代码不相等。两个对象显然不相等
//定义一个类继承IEqualityComparer接口 public class ModelComparer : IEqualityComparer<Model> { public bool Equals(Model x, Model y) { return x.Title.ToUpper() == y.Title.ToUpper(); } public int GetHashCode(Model obj) { return obj.Title.ToUpper().GetHashCode(); } }
调用:
modelList = modelList.Distinct(new ModelComparer()).ToList();
解决方案二:
var title = modelList.GroupBy(m => m.Title.ToLower().Trim()).Select(m => new { ID = m.FirstOrDefault().ID }); modelList = modelList.Where(m => title.Select(mo => mo.ID).Contains(m.ID)).ToList(); foreach (var item in modelList) { Console.WriteLine(item.ID + "\t" + item.Title); }
当然。如果你仅仅比较两个值是否相等。
List<string> li1 = new List<string> { "8", "8", "9", "8", "0", "9" }; li1 = li1.Distinct().ToList();
阅读全文
0 0
- C# 去掉List重复元素的方法
- C# 去掉List重复元素的方法
- c#一个list去掉其中重复元素
- 去掉List中重复元素
- 去掉数组中重复的元素方法
- Coldfusion:把一个List里的重复元素去掉的一种方法。
- python 去掉list中的重复元素
- java去掉list中的重复元素
- java中两个list去掉重复元素
- list对象根据字段去掉重复元素
- c# list 删除重复元素
- 使用javascript去掉数组中重复元素的方法
- 编写一个方法 去掉一个数组的重复元素
- javascript和java数组中去掉重复元素的方法
- 用一个方法去掉一个数组的重复元素
- js去掉重复的元素
- 去掉List集合重复值的四种方法
- list去掉重复的对象
- 记录两个官方的ViewPager动画
- 查看import的类是出自哪个jar包的方法
- 2017.12.8
- C# Stream 和 byte[] 之间的转换
- C# 重绘设置Image亮度
- C# 去掉List重复元素的方法
- 百度指数
- (三)证明不等式|(e-(1+1/n)^n)|<3/n
- Linux彩色进度条和普通进度条
- restTemplate 传递map
- HttpWatch网页数据分析工具
- 动态添加f
- Git常用命令
- 自定义一个Java运行时注解框架