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