Entwickler-Ecke
Basistechnologien - Überprüfen, ob object eine Collection ist
norman2306 - Do 25.03.10 15:18
Titel: Überprüfen, ob object eine Collection ist
Servus!
Gibt es eine einfach Möglichkeit zu überprüfen ob ein object eine Collection<T> (oder davon abgeleitet) ist, ohne das ich T definieren muss?
Bsp:
C#-Quelltext
1: 2: 3: 4:
| object obj = new KeyedCollection<string, string>();
if(obj is Collection<T>) .... |
--
Moderiert von
Kha: Beiträge zusammengefasst --
Und noch was... Gibt es eigentlich eine Möglichkeit, seine eigenen Themen zu verschieben, wenn man sich vershentlich vertan hat? :)
Moderiert von
Kha: Topic aus ASP.NET und Web verschoben am Do 25.03.2010 um 20:21
Kha - Do 25.03.10 21:26
norman2306 hat folgendes geschrieben : |
| Gibt es eine einfach Möglichkeit zu überprüfen ob ein object eine Collection<T> (oder davon abgeleitet) ist, ohne das ich T definieren muss? |
Ich weiß nicht, was genau du vorhast, aber für die meisten praktischen Anwendungen sollte doch ein
is ICollection genügen :) .
norman2306 hat folgendes geschrieben : |
| Und noch was... Gibt es eigentlich eine Möglichkeit, seine eigenen Themen zu verschieben, wenn man sich vershentlich vertan hat? :) |
Nein, aber dafür gibt's ja uns ;) .
norman2306 - Do 25.03.10 21:44
Dank dir! Jaja, der Baum und der Wald...
Ich habe einen eigenen allgemeinen PropertyDescriptor. Wenn es sich um eine Collection handelt, soll er anders reagieren als sonst. Dafür muss ich aber wissen, dass das eine Collection ist.
Kha - Do 25.03.10 22:36
Um deine ursprüngliche Frage nicht unbeantwortet zu lassen: Da wird man leider alle Vorfahren durchprobieren müssen. Auf Rekursion habe ich gerade keine Lust, also lieber Reactive Framework ;) .
C#-Quelltext
1: 2:
| var baseTypes = EnumerableEx.Generate(x.GetType(), t => t.BaseType != null, t => t, t => t.BaseType); baseTypes.Any(t => t.IsGenericType && t.GetGenericTypeDefinition() == typeof(Collection<>)) |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!