【发布时间】:2013-01-05 11:51:48
【问题描述】:
我正在阅读C# AsEnumerable:
"IEnumerable 接口是一个泛型接口。这意味着它 定义了一个类型可以实现循环的模板。这 AsEnumerable 方法,一个泛型方法,允许你强制转换一个特定的 键入其 IEnumerable 等效项"
进一步,一个代码示例:
using System;
using System.Linq;
class Program
{
static void Main()
{
// Create an array type.
int[] array = new int[2];
array[0] = 5;
array[1] = 6;
// Call AsEnumerable method.
var query = array.AsEnumerable();
foreach (var element in query)
{
Console.WriteLine(element);
}
}
}
听起来我需要将数组转换为 IEnumerable 类型的对象才能使用循环(foreach?)。
但是将 foreach 直接应用于 array 会产生完全相同的结果:
using System;
//using System.Linq;
class Program
{
static void Main()
{
// Create an array type.
int[] array = new int[2];
array[0] = 5;
array[1] = 6;
// Call AsEnumerable method.
//var query = array.AsEnumerable();
foreach (var element in array)
{
Console.WriteLine(element);
}
}
}
所以,整个网页对 AsEnumerable() 方法的解释对我来说是无效的。
我错过了什么?
【问题讨论】:
-
+1 这个例子完全是愚蠢的,网页的作者也不知道
AsEnumerable是干什么用的。 -
感谢所有回答者的帮助,尤其感谢评论者@Konrad Rudolph 让我免于与对方法使用语法感兴趣的人混淆。问题的关键是我(但不是引用的文章,我在询问之前理解)错过了什么。我已经阅读了所有答案几次,但我真的更喜欢运行随附的代码插图,而不是阅读非常明智和正确的理论。为了不厌其烦地教育我,似乎正确的答案遭到了反对。
标签: c# arrays linq list ienumerable