可以使用foreach遍歷迴圈的條件

2022-02-20 06:19:16 字數 1923 閱讀 4445

大話c#中能使用foreach的集合的實現

**:大家都知道foreach的語法: foreach(var item in items)

通過這樣乙個簡單的語句,就能實現遍歷集合items中的所有元素。 那麼,集合類(注意不是集合中的元素的類)是要滿足什麼條件才能用foreach遍歷呢?

就像買衣服需要去找到賣衣服的人一樣,要使用foreach,集合類必須要實現getenumerator()方法。

這裡的getenumerator就相當於**裡的售貨員,穿著統一的服裝,任務就是買衣服(程式裡的任務是實現遍歷集合)。

當然了,售貨員可以是個體戶,也就是說,你可以自己直接實現getenumerator()方法;也可以是某個公司統一培訓上崗的(程式裡就是 實現了ienumerable介面的。)只要是這個公司培訓上崗的員工,一定是能夠賣衣服。同理,只要實現了ienumerable介面,就一定能夠用 foreach遍歷! 那麼,實現了ienumerable介面必然要重寫getenumerator()方法。getenumerator()方法就讓這個集合類獲得了遍歷的方法。 而這個遍歷的方法是有一定的共性的,比如,獲取當前索引對應的元素(getcurrent)啦, 移動到下乙個元素啦(movenext)啦,等等等等。 就好比買衣服培訓一樣,有一套統一的流程,大家賣衣服的流程都差不多(進貨、上貨、叫賣等等)。 既然這麼有共性,那麼就給封裝成乙個ienumerator介面吧,這個介面裡就包括獲取當前索引對應的元素(getcurrent)啦, 移動到下乙個 元素(movenext)等等的方法,等待你去實現。這樣,你只需要寫乙個實現了ienumerator介面的類(假設是myarrayenumerator),建構函式裡將你要寫的集合類的 元素集合傳進去處理。那麼你再在集合類的getenumerator()方法裡寫上 return new myarrayenumerator()即完成了遍歷集合的「上崗培訓」。

總結就是:要使用foreach,集合類必須要實現getenumerator()方法,集合類是需要實現ienumerator介面的類!!!!

大家都知道foreach的語法: foreach(var item in items)

通過這樣乙個簡單的語句,就能實現遍歷集合items中的所有元素。 那麼,集合類(注意不是集合中的元素的類)是要滿足什麼條件才能用foreach遍歷呢?

就像買衣服需要去找到賣衣服的人一樣,要使用foreach,集合類必須要實現getenumerator()方法。

這裡的getenumerator就相當於**裡的售貨員,穿著統一的服裝,任務就是買衣服(程式裡的任務是實現遍歷集合)。

當然了,售貨員可以是個體戶,也就是說,你可以自己直接實現getenumerator()方法;也可以是某個公司統一培訓上崗的(程式裡就是 實現了ienumerable介面的。)只要是這個公司培訓上崗的員工,一定是能夠賣衣服。同理,只要實現了ienumerable介面,就一定能夠用 foreach遍歷! 那麼,實現了ienumerable介面必然要重寫getenumerator()方法。getenumerator()方法就讓這個集合類獲得了遍歷的方法。 而這個遍歷的方法是有一定的共性的,比如,獲取當前索引對應的元素(getcurrent)啦, 移動到下乙個元素啦(movenext)啦,等等等等。 就好比買衣服培訓一樣,有一套統一的流程,大家賣衣服的流程都差不多(進貨、上貨、叫賣等等)。 既然這麼有共性,那麼就給封裝成乙個ienumerator介面吧,這個介面裡就包括獲取當前索引對應的元素(getcurrent)啦, 移動到下乙個 元素(movenext)等等的方法,等待你去實現。這樣,你只需要寫乙個實現了ienumerator介面的類(假設是myarrayenumerator),建構函式裡將你要寫的集合類的 元素集合傳進去處理。那麼你再在集合類的getenumerator()方法裡寫上 return new myarrayenumerator()即完成了遍歷集合的「上崗培訓」。

總結就是:要使用foreach,集合類必須要實現getenumerator()方法,集合類是需要實現ienumerator介面的類!!!!

foreach迴圈遍歷類陣列

using system using system.collections using system.collections.generic using system.linq using system.text using system.threading.tasks 使用foreach迴圈遍歷乙...

可以使用xmp格式預設嗎 強制傳喚可以使用警械嗎

強制傳喚是針對行政案件的,特別是違反治安管理處罰法的行為人,如果行為人沒有正當的理由而拒絕公安機關傳喚的,那麼可以強制傳喚。一 強制傳喚可以使用警械嗎 可以使用警械。強制傳喚,是公安機關在辦理行政案件時,對無正當理由不接受傳喚或者逃避傳喚的違反治安管理的違法嫌疑人,使用強制方法將其帶至公安機關或指定...

Hibernate可以使用insert語句

hibernate hql是可以使用insert語句的,好多同行只是沒有注意到。一般情況下不怎麼使用,會容易忘記它,實際上insert語句用在插入報表表中資料常用到,也非常的方便。string hql insert into tusers tname,tpassword select u.name,...