foreach迴圈遍歷類陣列

2021-09-10 01:51:28 字數 1288 閱讀 9148

using system;

using system.collections;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

/** * 使用foreach迴圈遍歷乙個person封裝類陣列

* 要想用foreach迴圈遍歷乙個自己的類陣列,

* 這個類必須實現ienumerable介面實現其中的getenumerator方法獲得乙個列舉器

* getenumerator方法需要返回乙個ienumerator型別的引數,

* 自定義乙個列舉器類實現ienumerator介面,編寫其中的方法,使得返回想要的值就ok

**/namespace foreach列舉器

; person person = new person(p);

foreach (person item in p)

console.readkey();}}

/*** 這個類中有兩個建構函式,其中乙個是對類中屬性的初始化,

* 另乙個是要傳person型別的陣列,方便在使用getenumerator()

* 方法時傳遞需要遍歷的陣列

* */

class person : ienumerable

person person;

public person(person p)

public string name

public int age

public override string tostring()

//將需要遍歷的陣列傳遞,同時返回遍歷結果

public ienumerator getenumerator()

}//這就是乙個自定義的列舉器,只要實現ienumerator介面就ok

class personenumerator : ienumerator

//初始化下標

int index = -1;

//這個就是返回的當前的資料

public object current => p[index];

//這個函式用來實現下標的移動

public bool movenext()

return false;

}//這個函式是將下標初始化回原來的資料,方便二次遍歷

public void reset()

}}

foreach 遍歷陣列

foreach array expression as value statement foreach array expression as key value statement 第一種格式遍歷給定的 array expression 陣列。每次迴圈中,當前單元的值被賦給 value 並且陣列內...

陣列遍歷的方法 For Each迴圈和索引遍歷

for each迴圈是jdk1.5引進的一種新的迴圈型別,又被稱為加強型迴圈,它能在不使用索引的情況下遍歷陣列。語法格式 for type element array 例項 需求 遍歷陣列arr中的所有元素 public class testsrray for int element arr 上述編...

Foreach遍歷集合類原理

下面的 示例闡釋如何編寫可與foreach一起使用的非泛型集合類。該類是字串標記化拆分器,類似於 c 執行時函式 strtok s。1 using system 2using system.collections.generic 3using system.linq 4using system.te...