Collection.IEnumerable.GetEnumerator Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Lekéri a gyűjteményen át iteráló enumerátort.
virtual System::Collections::IEnumerator ^ ICollectionGetEnumerator() = System::Collections::IEnumerable::GetEnumerator;
System.Collections.IEnumerator IEnumerable.GetEnumerator();
abstract member ICollectionGetEnumerator : unit -> System.Collections.IEnumerator
override this.ICollectionGetEnumerator : unit -> System.Collections.IEnumerator
Function ICollectionGetEnumerator () As IEnumerator Implements IEnumerable.GetEnumerator
Válaszok
Egy IEnumerator objektum, amely a gyűjteményen keresztüli iterációhoz használható.
Megjegyzések
A C# nyelv foreach utasítása (for each az Visual Basic) elrejti az enumerátorok összetettségét. Ezért az enumerátor közvetlen módosítása helyett ajánlott a használat foreach .
Az enumerátorok a gyűjtemény adatainak olvasására használhatók, de nem használhatók az alapul szolgáló gyűjtemény módosítására.
Kezdetben az enumerátor a gyűjtemény első eleme elé kerül. A Reset metódus az enumerátort is visszahozza ebbe a pozícióba. Ebben a helyzetben a Current tulajdonság nincs meghatározva. Ezért meg kell hívnia a MoveNext metódust, hogy az enumerátort a gyűjtemény első elemére továbbléptetje, mielőtt elolvassa Currenta gyűjtemény értékét.
Current ugyanazt az objektumot adja vissza, amíg meg MoveNext nem hívja vagy Reset meghívja. MoveNext elemet a következő elemre állítja Current .
Ha MoveNext a gyűjtemény végére ér, az enumerátor a gyűjtemény utolsó eleme után lesz elhelyezve, és MoveNext visszaadja a függvényt false. Ha az enumerátor ebben a pozícióban van, a következő hívások is visszatérnek MoveNextfalse. Ha az utolsó visszahívás visszahívása MoveNextfalse, Current nincs definiálva. Ha ismét a gyűjtemény első elemére szeretne állítani Current , meghívhatja Reset a következőt MoveNext: .
Az enumerátorok mindaddig érvényesek maradnak, amíg a gyűjtemény nem változik. Ha módosításokat végez a gyűjteményen, például elemeket ad hozzá, módosít vagy töröl, az enumerátor visszavonhatatlanul érvénytelen lesz, és a viselkedése nincs meghatározva.
Az enumerátor nem rendelkezik kizárólagos hozzáféréssel a gyűjteményhez; ezért a gyűjteményen keresztüli számbavétel alapvetően nem szálbiztos eljárás. Az enumerálás során a szálbiztonság érdekében zárolhatja a gyűjteményt a teljes enumerálás során. Ahhoz, hogy a gyűjtemény több szálon keresztül is elérhető legyen olvasáshoz és íráshoz, saját szinkronizálást kell implementálnia.