Die korrekte -Methode, die in allen -Fällen funktioniert, verwendet IEnumerator<T>
direkt:
Diese Methode funktioniert auch dann, wenn Ihre Sammlung keine Count
-Eigenschaft hat, und selbst wenn dies der Fall ist, ist diese Methode effizienter, wenn die Eigenschaft Count
langsam ist.
Ein alternativer Ansatz, von dem ich nicht glaube, dass ihn jemand gepostet hat. Dies funktioniert gut, wenn Sie die Anzahl nicht im Voraus wissen.
%Vor%Sie müssen eine reguläre for-Schleife verwenden, wenn Sie beim letzten Element ein anderes Verhalten haben möchten.
%Vor%Es ist erwähnenswert, dass "der andere Skeet" eine Implementierung für einen "intelligenten Enumerable" hat, der eine Last-Eigenschaft unterstützt. Siehe den Artikel hier: Ссылка
Damit könntest du so etwas schreiben (ich könnte die Details falsch verstehen, habe es nicht selbst ausprobiert):
%Vor%Anstatt foreach zu verwenden, rufen Sie den IEnumerator auf. Wenn MoveNext null zurückgibt, war der vorherige der letzte.
für würde natürlich auch funktionieren.
Wenn Sie daran interessiert sind, Ihre Iteration im Auge zu behalten, warum verwenden Sie nicht stattdessen for
oder foreach
? Dann können Sie einfach Folgendes tun:
Der von Ihnen gepostete Code ist identisch mit:
%Vor% Wenn das nicht das tut, was Sie wollen, müssen Sie erklären, was lastTime
tut.