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:
foreach (var entry in myList) {
// Can't use a switch statement here, because cases must be constants.
if (entry.GetType() == typeof(MyClassA)) {
// Do something with class A elements.
}
else if (entry.GetType() == typeof(MyClassB)) {
// Do something with class B elements.
}
else if (entry.GetType() == typeof(MyClassC)) {
// Do something with class C elements.
}
}
Noch keine Kommentare vorhanden.