前言
在Dotnet开发过程中,concat作为ienumerable的扩展方法,十分常用。本文对Concat方法的关键源码进行简要分析,以方便大家日后更好的使用该方法。
使用
Concat连接两个序列。
假如我们有这样的两个集合,我们需要把两个集合进行连接!
不使用Linq
大概会这样写!
使用Linq
源码解析
方法
参数
first 要连接的第一个序列。
second 要连接的第二个序列。
返回值
IEnumerable< TSource > 一个包含两个输入序列的连接元素的 IEnumerable< T>。
此方法通过使用延迟执行来实现,因为IEnumerable是延迟加载的,每次访问的时候才取值。所以我们在返回数据时需要使用yield
所以我们可通过使用 foreach 语句从迭代器方法返回的序列。foreach 循环的每次迭代都会调用迭代器方法。迭代器方法运行到 yield return 语句时,会返回一个 expression,并保留当前在代码中的位置。下次调用迭代器函数时,将从该位置重新开始执行。
源码:
总结
本次通过分析Concat代码,进一步了解了迭代器与yield。
原文链接:https://www.w1ym.com/82763/,转载请注明出处~~~
评论0