自定義迭代器使用foreach

2021-09-08 21:39:25 字數 681 閱讀 6562

foreach遍歷集合好處很多,因為.net framework在foreach中已經做了try...catch和dispose的操作。那麼如果想自定義乙個集合並且該集合能使用foreach來遍歷,一般做法是實現system.collections.ienumerable和system.collections.ienumerator介面。其實只要在集合類中實現無引數的返回ienumerator的getenumerator方法就可以了。如下面**

1

public

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 ...