相关疑难解决方法(0)

为什么使用.AsEnumerable()而不是强制转换为IEnumerable <T>?

其中一个扩展方法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>是等价的?

c# linq ienumerable

63
推荐指数
2
解决办法
4万
查看次数

标签 统计

c# ×1

ienumerable ×1

linq ×1