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接口的类。