-1

以下代码取自以下网页:http: //msdn.microsoft.com/en-us/magazine/cc188707.aspx

int[] values = new int[] {1, 2, 3, 4, 5}; 
IEnumerator e = ((IEnumerable)values).GetEnumerator(); 
while(e.MoveNext()) 
{ 
Console.Write(e.Current.ToString() + " "); 
}

为什么将 Array 类转换为 IEnumerable?Array 类实现 GetEnumerator,如以下网页所示:http: //msdn.microsoft.com/en-us/library/system.array.aspx

4

1 回答 1

0

那不是VB,而是C#。

没有理由将数组强制转换为,无论有没有强制转换IEnumerable,它都会做同样的事情。

无论如何,使用枚举器循环遍历数组是低效的,因为它会将对象中的每个整数装箱。使用forforeach创建在没有装箱的情况下循环值的代码,并且没有不必要的范围检查:

for (int i = 0; i < values.Length; i++) {
  Console.Write(values[i]);
  Console.Write(' ');
}

或者:

foreach (int value in values) {
  Console.Write(value);
  Console.Write(' ');
}
于 2012-12-16T12:30:08.390 回答