Jak zadeklarować metodę GetEnumerator (kolekcji Dictionary) w klasie?

0

Witam.

Próbuje ogranąć kolekcje w C# i męcze się z Dictonary.
Napisałem sobie klasę do obsługi przykładowej kolekcji i o ile z dodaniem/odczytem posczególnych elementów nie mam problemu to nie mogę wypisać wszystkich elementów za pomoca foreach, bo kompilator informuje, że foreach statement cannot operate on variables of type 'TKolekcja' because 'TKolekcja' does not contain a public definition for 'GetEnumerator'.

Z tego co znalazłem w sieci należy wewnątrz klasy udostępnić metodę GetEnumerator - i właśnie z tym mam problem bo jak bym nie napisał to zwraca błąd - możecie podpowiedzieć jak to zrobić ?

public class TKolekcja
{
        public static Dictionary<int, string> Lista = new Dictionary<int, string>();
}
0

@Azarien dziękuję :).

Zrobiłem coś takiego:

public class TKolekcja
{
        public static Dictionary<int, string> Lista = new Dictionary<int, string>();


     public System.Collections.IEnumerator GetEnumerator()
        {
            foreach (KeyValuePair<int, string> oPair in Lista)
            {
                yield return oPair;
            }
        }
} 

Działa, ale proszę o spojrzenie czy tak powinno być.

1

no jest niby OK, ale w takiej formie jak jest to można zrobić return Lista.GetEnumerator(); i tyle...

0

Jeszcze raz dziękuję :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1