linq和转换运算符
1.ToArray
两种常用用法

使用ILSPY查看Enumerable中的ToArray


源码分析:我们发现如果该类型可以转化为ICollection,我们最后执行CopyTo方法,如果不能转换为ICollection,那么就执行foreach。
2.ToList


源码分析:如果可以转换为ICollection,就是用CopyTo方法,如果不能转换就逐个Add到list中去。
3.ToDictionary

源码分析:dictionary会直接添加键值,如果key重复的话,编译器会报错。
4.ToLookup
解决了ToDictionary的不足,可以理解为Dictionary<string,List<string>>,代码看起来更直观些:


源码:

5.ofType
解释:根据指定类型筛选System.Collentions.IEnumerable的元素。

6.Cast
解释:将System.Collentions.IEnumerable的元素强制转换为指定类型。
貌似只适用于拆装箱。
7.asEnumerable
如果当前的类型没有继承IEnumerable这个接口,那么我们可以强制将这个类型转换为继承自IEnumerable接口的类。

浙公网安备 33010602011771号