假定我有如下列表信息:
1 Item1 IT00001 $100 2 Item2 IT00002 $200 3 Item3 IT00003 $150 1 Item1 IT00001 $100 3 Item3 IT00003 $150
一行为一条数据,如何使用linq移除重复项呢?
var distinctItems = items.Distinct();
如果需要根据某一列的值来移除重复项,就需要实现自己的IEqualityComparer<Item>
类了,如下示例:
class DistinctItemComparer : IEqualityComparer<Item> { public bool Equals(Item x, Item y) { return x.Id == y.Id && x.Name == y.Name && x.Code == y.Code && x.Price == y.Price; } public int GetHashCode(Item obj) { return obj.Id.GetHashCode() ^ obj.Name.GetHashCode() ^ obj.Code.GetHashCode() ^ obj.Price.GetHashCode(); } }
用法如下:
var distinctItems = items.Distinct(new DistinctItemComparer());
收藏
0人收藏
- 2014-05-07 14:15:12C#字符串检查通用方法 by 叠搭宝箱
- 2014-05-22 20:10:10ado.net参数的处理 by dreamit
- 2014-05-28 12:18:53win7判断管理员身份 by 叠搭宝箱
- 2014-06-02 11:26:29net通过注册脚本的方式实现提示或跳转 by dreamit
- 2014-06-06 10:04:20移位操作 by 掌心雷
- 2014-07-02 10:41:32C#判断指定的驱动器是否已经准备好了 by 牛哥
- 2014-07-13 10:53:27C# 操作windows注册表 by bargain
- 2014-08-15 10:38:54C#自定义将各种对象转换成JSON格式的类 by dreamit
- 2014-08-24 12:36:05C# stmp邮件 by 牛哥
- 2014-09-13 12:31:49asp.net中通过cookie传递参数 by 叠搭宝箱
- 2019-02-14 11:33:05收到控股和授课风格吧 by nfzy8yhh
相关聚客文章
- Talk + panel online: “(Not Your Father’s) C++” + “
- 如何高逼格读取Web.config中的AppSettings
- “Strong” and “weak” hardware memory models
- c#使用Linq的group by及多表联查
- IAsyncOperation does not contain a definition for
- Perspective: “Why C++ Is Not ‘Back’”
- .NET逻辑分层架构总结
- C++ 中的封送处理概述
- 利用C# .net在WP8里面异步加载任务
- .netframework中TimeZoneInfo类的使用
- C# 与 C++ 数据类型对照表
- C++ 中的封送处理概述