foreach遍歷集合好處很多,因為.net framework在foreach中已經做了try...catch和dispose的操作。那麼如果想自定義乙個集合並且該集合能使用foreach來遍歷,一般做法是實現system.collections.ienumerable和system.collections.ienumerator介面。其實只要在集合類中實現無引數的返回ienumerator的getenumerator方法就可以了。如下面**
1public
class mylist2 8
public
int count}
9public ienumerator getenumerator()
10
13 }
1415
public
class mylistenumerator:ienumerator
16 24
25public
string current}
26public
bool movenext()
27
34return result;
35 }
36 }
這樣mylist就可以通過foreach來遍歷了。如果要用linq那麼mylist就要實現ienumerable介面了。
自定義迭代器使用foreach
foreach遍歷集合好處很多,因為.net framework在foreach中已經做了try.catch和dispose的操作。那麼如果想自定義乙個集合並且該集合能使用foreach來遍歷,一般做法是實現system.collections.ienumerable和system.collecti...
C 自定義迭代器
讓我們在示例中看乙個簡單迭代器型別的定義。我們定義乙個類模板,用來表示一段數值型別值,也可以生成指定範圍的開始和結束迭代器。這個迭代器也是模板型別,兩個模板都定義在同乙個標頭檔案 numeric range.h 中。下面是 numeric range模板的定義 template class nume...
C 自定義可foreach的型別
1.不一定要實現 ienumerable介面 2.類中定義與 ienumerable介面中的getenumerator 方法相同的方法即可 方法名,返回值,引數都一致 class program intarray intarray new intarray array 測試,可以使用foreach ...