其中一个扩展方法IEnumerable<T>是.AsEnumerable().此方法将其调用的可枚举对象转换为实例IEnumerable<T>.但是,由于对象必须实现IEnumerable<T>才能应用于此扩展方法,因此转换为IEnumerable<T>简单的转换方法IEnumerable<T>.我的问题是为什么这种方法存在?
例:
List<string> strings = new List<string>() { "test", "test2", "test3" };
IEnumerable<string> stringsEnum1 = strings.AsEnumerable();
IEnumerable<string> stringsEnum2 = (IEnumerable<string>)strings;
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,stringsEnum1并且stringsEnum2是等价的.扩展方法有什么意义?
编辑:作为推论,为什么.AsQueryable()在施法时有一种方法IQueryable<T>是等价的?