
DotNet-Linq详解
文章平均质量分 58
DotNet-Linq详解
黑哥聊dotNet
分享优质编程资源,揭秘程序员的日常
我是黑哥,一名neter
展开
-
C#-Linq源码解析之Concat
假如我们有这样的两个集合,我们需要把两个集合进行连接! 不使用Linq大概会这样写! 使用Linq源码解析方法参数first 要连接的第一个序列。second 要连接的第二个序列。返回值IEnumerable< TSource > 一个包含两个输入序列的连接元素的 IEnumerable< T>。此方法通过使用延迟执行来实现,因为IEnumerable是延迟加载的,每次访问的时候才取值。所以我们在返回数据时需要使用yield所以我们可通过使用 foreach 语句原创 2022-06-21 16:40:16 · 1357 阅读 · 0 评论 -
C#-Linq源码解析之Average
假如我们有这样的一个集合 不使用linq我们要计算该集合的平均值,且不能使用linq,那么我们的计算平均值方法和下面这段代码应该没有多大的出入 使用linq源码解析方法参数source 元素的类型返回值double源码:将上述代码放到cheked块里面,就会使运行时引发System.OverflowException异常。这样就可以让你的运算更加准确,避免二进制的回绕。Enumerable.Average() 重载方法一共十多个,这里选择了最典型的一个讲解!原创 2022-06-21 16:34:46 · 667 阅读 · 0 评论 -
C#-Linq源码解析之Any
看这样一个例子,我们判断集合中是否存在元素当然flag都为false。我们现在给集合赋值只要有一个条件满足,当然就会返回true了参数source 元素的类型返回值bool该方法表示 只要有一个元素存在就返回True,否则返回false。IEnumerable修饰我们的源元素类型,那么我们就知道源元素是一个 可以获得循环访问集合的枚举器那么我们就可以使用GetEnumerator这个方法进行迭代了。然后我们在使用MoveNext方法,来遍历集合的元素!源码:第二个方法参数s原创 2022-06-12 11:30:14 · 378 阅读 · 0 评论 -
C# Linq源码解析之All
前言在Dotnet开发过程中,All作为IEnumerable的扩展方法,十分常用。本文对Aggregate方法的关键源码进行简要分析,以方便大家日后更好的使用该方法。使用确定序列中的所有元素是否都满足条件,如果都满足就返回true,如果有一个不满足就返回false有这样一段代码,我们判断集合中的元素的性别是否都为男,我们就可以使用linq中的all方法publicclassUserInforMation{publicstringUserNa...原创 2022-05-26 16:14:10 · 471 阅读 · 0 评论 -
C# Linq源码解析之Aggregate
前言在Dotnet开发过程中,Aggregate作为IEnumerable的扩展方法,十分常用。本文对Aggregate方法的关键源码进行简要分析,以方便大家日后更好的使用该方法。使用Aggregate是对序列应用累加器的函数。看下面一段代码:List<string>lst=newList<string>(){"张三","李四","王麻子"};给了我们这样的一个list集合,我们想要得到"张三 哈哈哈 李四 哈哈哈 王麻子 "...原创 2022-05-26 16:14:27 · 2173 阅读 · 0 评论 -
C# IEnumerator IEnumerable接口
前言使用linq的时候大家应该都知道IEnumerable和IEnumerator接口!解释一下 IEnumerable 它利用 GetEnumerator() 返回 IEnumerator 集合访问器,声明实现该接口的class是“可枚举(enumerable)”的 通俗点说就是可进行迭代操作的类型。 IEnumerator解释:它是一个的集合访问器,使用foreach语句遍历集合或数组时,就是调用 Current、MoveNext()的结果。 例子今天给大家讲讲迭代器的原创 2022-04-27 19:32:20 · 1777 阅读 · 0 评论