Erstellen einer Liste mit mehreren, unterschiedlichen Typen in C#
von
Christian Hanne
am
22. August 2021
Grundsätzlich ist C# eine sehr stark typisierte Sprache und auch Listen erlauben meistens nur einen definierten Datentyp. Mittels ArrayList kann man diese Einschränkung allerdings ein Stück weit umgehen.
Wenn wir beispielsweise 3 verschiedene Klassen A, B und C haben, können wir diese mit ArrayList in einer Liste zusammen fassen:
class MyClassA { }
class MyClassB { }
class MyClassC { }
ArrayList myList = new ArrayList();
myList.Add(new MyClassA());
myList.Add(new MyClassB());
myList.Add(new MyClassB());
myList.Add(new MyClassA());
myList.Add(new MyClassC());
myList.Add(new MyClassC());
Wir können nun über diese Liste iterieren und die einzelnen Elemente auslesen. Allerdings müssen wir dann wahrscheinlich herausfinden, um welche Art von Element es sich handelt. Das funktioniert so:
for (int i = 0, len = myList.Count; i < len; i++) {
switch (myList[i].GetType()) {
case typeof(MyClassA):
// Do something with class A elements.
break;
case typeof(MyClassB):
// Do something with class B elements.
break;
case typeof(MyClassC):
// Do something with class C elements.
break;
}
}
Noch keine Kommentare vorhanden.