IEnumerable枚举之说??我不太理解,求教!!
我只知道枚举是用字符的形式如(day.monday)来表示数字(如1)
但看书上讲的IEnumerable枚举功能始终不能理解,作用知道,是用于循环迭代的,但为什么叫枚举
这段代码,枚举在哪里??
- C# code
foreach(car c in carArray){response.write(c.name)}
这段代码,枚举在哪里??
[解决办法]
一个Collection要支持foreach方式的遍历,必须实现IEnumerable接口
这里的枚举功能应该是指一个个的列出集合的项
[解决办法]
IEnumerable 和 IEnumerator 是经典的 工厂方法模式
IEnumerator 生产出继承IEnumerable 的实例
也就是 IEnumerable 迭代
在底层要建立一个迭代器
yield
yield return <expression>;
yield break;
- C# code
public class List{ //using System.Collections; public static IEnumerable Power(int number, int exponent) { int counter = 0; int result = 1; while (counter++ < exponent) { result = result * number; yield return result; } } static void Main() { // Display powers of 2 up to the exponent 8: foreach (int i in Power(2, 8)) { Console.Write("{0} ", i); } }}/*Output:2 4 8 16 32 64 128 256 */
[解决办法]
当然 .NET 2.0 以后 使用Ilist 反省要好多了
- C# code
static IEnumerable<int> WithYield() { for (int i = 0; i < 20; i++) { Console.WriteLine(i.ToString()); if(i > 2) yield return i; } }
[解决办法]
[解决办法]
这个枚举是动词...你要理解它去查汉语词典而不是MSDN...
[解决办法]
其实starts_2000 bhtfg538
都说得差不多了.
我也不多说了!~
不知道楼主不明白什么呢?
[解决办法]
System.Collections.IEnumerator e= orderstatusinfo.GetEnumerator();
while (e.MoveNext())
{
Response.Write(e.Current.ToString())
}
底层原理就是 上面说的
就是你的代码的 愿意
更底层的 你用汇编看吧
[解决办法]
唉...程序员也得学语文啊...
[解决办法]
[解决办法]
见过笨的,没见过这么笨的...
这个枚举是动词不是枚举类型...你要理解它去查汉语词典...
[解决办法]
System.Collections.IEnumerator e= orderstatusinfo.GetEnumerator();
while (e.MoveNext())
{
Response.Write(e.Current.ToString())
}
System.Collections.IEnumerator e= orderstatusinfo.GetEnumerator();
可以将e看作是一些数据的集合
e.MoveNext()作用是访问集合中的单个数据
while (e.MoveNext()) 的作用就是顺序访问集合中的每个数据,直到数据的最后一个
[解决办法]
[解决办法]
简直服了...你不会去查查汉语词典啊...
枚举就是一一列举...白话就是挨个儿给我拉出来溜溜...可枚举的意思就是能够被挨个拉出来溜...
[解决办法]
这个枚举不要和enum那个搞混了
[解决办法]
bhtfg538 苦了你了。哈哈。
开心的一帖。。
[解决办法]
枚举 == 遍历
while()... 这里就对集合遍历了.