Jak przechodzić między kolekcjami obsługującymi IEnumerable?Jak przechodzić między kolekcjami obsługującymi IEnumerable?
Odpowiedz
Regularny za każdy zrobi:
foreach (var item in collection)
{
// do your stuff
}
foreach (var element in instanceOfAClassThatImplelemntIEnumerable)
{
}
Wraz z już proponowanych metod przy użyciu foreach
pętlę, myślałem Chciałbym również wspomnieć, że każdy obiekt, który implementuje IEnumerable
zapewnia również IEnumerator
interfejs za pomocą metody GetEnumerator
. Chociaż ta metoda zwykle nie jest potrzebna, można jej użyć do ręcznego iterowania po kolekcjach i jest szczególnie przydatna podczas pisania własnych metod rozszerzania kolekcji.
IEnumerable<T> mySequence;
using (var sequenceEnum = mySequence.GetEnumerator())
{
while (sequenceEnum.MoveNext())
{
// Do something with sequenceEnum.Current.
}
}
Dobrym przykładem jest, gdy chcesz iteracyjne nad dwie sekwencje jednocześnie, co nie jest możliwe przy foreach
pętli.
Nie zapomnij wyrzucić modułu wyliczającego. –
@Eric: Tak, dodam to, ponieważ łatwo go przeoczyć. – Noldorin
+1, czasami może się przydać ręczna iteracja. –
lub nawet bardzo klasyczny stary sposób moda
for(int i = 0; i < collection.Count(); i++)
{
string str1 = collection.ElementAt(i);
// do your stuff
}
może chcesz tę metodę również :-)
Dlaczego ma tak wiele przebojów? Spowoduje to wyliczenie wielokrotności 2n zamiast jednego razu. –
@RomanReiner ponieważ to działa, niektórzy ludzie nie przejmują się wydajnością :) – Khateeb321
@RomanReiner to jest dobry przykład, muszę przypisać każdy element z jednej kolekcji do innej kolekcji, myślę, że nie mogę tego zrobić za pomocą foreach – AminM
- 1. C# dynamiczne i pracujące z kolekcjami IEnumerable
- 2. Jak przechodzić między tablicami JSON?
- 3. Jak przechodzić między tablicami wsadowymi?
- 4. jak przechodzić między kolumnami zapytań w ColdFusion
- 5. Jak przechodzić między wszystkimi właściwościami klasy?
- 6. Jak przechodzić między obiektami w php
- 7. Jak działa powiązanie z kolekcjami?
- 8. Jak pracować z kolekcjami
- 9. Jak znaleźć różnicy między 2 IEnumerable obiektów
- 10. Różnica między IEnumerable i IEnumerable <T>?
- 11. Windows plik wsadowy - jak przechodzić między plikami w katalogu?
- 12. Jak przechodzić między wszystkimi atrybutami XElement i uzyskać ich wartości?
- 13. Jak przechodzić między żądaniami Ajax wewnątrz JQuery Kiedy - to statystyka?
- 14. jak renderować obiekt json w jade i przechodzić między wynikami
- 15. Jaka jest różnica między IEnumerable a tablicami?
- 16. Swift - jak przechodzić przez NSDictionary
- 17. jak uniknąć wyścigów z równoległymi kolekcjami scala
- 18. Jak korzystać z jsonbuilder z kolekcjami?
- 19. Jak przechodzić przez niezmienną listę jak forEach?
- 20. Jak utworzyć singleton IEnumerable?
- 21. Jak sortować IEnumerable List?
- 22. jak manipulować zwróconymi kolekcjami Mongo/kursorami w javascript (meteor.js)?
- 23. Jak mogę przechodzić przez wszystkie trasy?
- 24. vb.net jak przechodzić przez listę katalogów?
- 25. jak można przechodzić przez wiele tablic równolegle?
- 26. Python: Jak przechodzić przez bloki linii
- 27. Jak przechodzić przez wszystkie elementy formularza jQuery
- 28. Jak mogę przechodzić przez wyliczenie w Javie?
- 29. Jak przechodzić przez obiekt SimpleXML w PHP
- 30. Jak przechodzić przez JSON z SwiftyJSON?
To szybciej niż .ElementAt(). Niestety, mój głos jest zamknięty w odpowiedzi Alexy, więc nie mogę tego cofnąć, ale jest to najlepsza odpowiedź. +1 –