1.在使用Linq查询数据时经常以IEnumerable<T>来作为数据查询返回对象,在使用foreach进行遍历时需要该对象实现IEnumerable接口。
如:List <int >list=new List<int>();
list.where(i=>i>1);//返回的就是IEnumerable<string>。原因在System.Linq 命名空间下,有个静态类static class Enumerable。
它下面都是IEnumerable<T>类型的扩展参数,返回类型也是IEnumerable<T>,而不是list,
public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate)
2.IEnumerable<T>有这些扩展方法,而IEnumerable没有,所以有时候通过.cast<T>进行转换。如:ArrayList arr=new ArrayList();
arr.cast<List>().where("……")