【发布时间】:2010-01-06 15:10:57
【问题描述】:
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;
在上面的例子中,stringsEnum1 和 stringsEnum2 是等价的。扩展方法的意义何在?
编辑:作为推论,为什么在转换为 IQueryable<T> 时有一个 .AsQueryable() 方法是等效的?
【问题讨论】:
标签: c# linq ienumerable