1. DistinctEqualityComparer.cs public class DistinctEqualityComparer<T, V> : IEqualityComparer<T>     {         private Func<T, V> keySelector; public DistinctEqualityComparer(Func<T, V> keySelector)         {             this.keyS…
很多情况下我们查询数据需要去重重复数据,下面就记录三个去重的方法. Distinct 最基本的去重形式,直接查询出数据后使用Distinct方法进行字段去重. var strList = new List<string>() { "1","2","1"}; var resultList = strList.Distinct();//结果1,2 IEqualityComparer 此方法扩展接口可以实现类级别的去重,比如我想实现其中一个…
提供者:porschev 题目:下列数据放在一个List中,当ID和Name都相同时,去掉重复数据 ID Name 1  张三 1  李三 1  小伟 1  李三  2  李四 2  李武 ------------------------------------------------------------------------------------------------------------ 解决这个问题,方法很多,最开始想到的就Enumerable.Distinct方法 我们可能经…
Enumerable.Distinct<TSource> Method(IEnumerable<TSource>, IEqualityComparer<TSource>) 也就是使用的Distinct(参数1,参数2): 参数1为原数据,参数2为比较数据 通过IEqualityComparer<T> 来比较值从而返回不同的序列. 引用的名称空间:System.Linq 程序集:System.Core (在 System.Core.dll下) 语法: publ…
Linq 虽然用得多,但是里面有一些方法比较少用,因此整理一下.Enumerable 类的所有方法可以在 MSDN 上查阅到:https://msdn.microsoft.com/zh-cn/library/system.linq.enumerable.aspx Aggregate 这个方法有三个重载,先看第一个 Aggregate<TSource>(IEnumerable<TSource>, Func<TSource, TSource, TSource>) 参数是接受…
我们在想对一个可枚举的对象集合进行去重操作时,一般第一个想到的就是就是Linq的Distinct方法. 先定义一个类,然后使用Distinct方法去重 class Man { public int Age { get; set; } public string Name { get; set; } public string Adress { get; set; } public decimal Weight { get; set; } public decimal Height { get;…
功能:生成两个序列的并集(使用默认的相等比较器). 命名空间: System.Linq 程序集: System.Core.dll 备注:实现此方法时使用了延迟执行. 它直接返回一个对象,该对象存储了执行操作所需的所有信息. 此方法所表示的查询不会被执行,直到调用了 GetEnumerator 方法或通过使用了 Visual C# 中的 foreach 或 Visual Basic 中的 For Each.此方法从结果集中排除重复项. 这和 Concat<TSource> 方法(它的功能是连接两…
根据指定的键选择器函数对序列中的元素进行分组. 命名空间:  System.Linq程序集:  System.Core(在 System.Core.dll 中) 语法 C# C++ F# VB   public static IQueryable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey>( this IQueryable<TSource> source, Expression<Func<TS…
之前,在项目中看到过一段通用列表类型转换的代码,直接的实现便是用反射.大概看了下,它用在领域模型转DTO和SOA接口中契约实体的转换等等.首先,它使用了反射,其次,还是在循环中使用,便有了优化的想法. 方法原型如:public static List<TResult> ConvertList<TSource, TResult>(List<TSource> source) where TResult : new(),下面贴出代码.说明一下,在此我没有任何的贬义,这段代码可…
性能优化-列表类型转换(ConvertList<TSource, TResult>) 2013-12-16 16:55 by stevey, 426 阅读, 7 评论, 收藏, 编辑 之前,在项目中看到过一段通用列表类型转换的代码,直接的实现便是用反射.大概看了下,它用在领域模型转DTO和SOA接口中契约实体的转换等等.首先,它使用了反射,其次,还是在循环中使用,便有了优化的想法. 方法原型如:public static List<TResult> ConvertList<T…