public bool IsList(object value)
{
Type type = value.GetType();
// Check if type is a generic list of any type
}
Wie kann am besten überprüft werden, ob das angegebene Objekt eine Liste ist oder in eine Liste umgewandelt werden kann?
Antworten:
quelle
List<T>
undObservableCollection<T>
implementierenIList
.Für euch, die gerne Erweiterungsmethoden verwenden:
Also könnten wir tun:
quelle
return oType.GetTypeInfo().IsGenericType && oType.GetGenericTypeDefinition() == typeof(List<>);
IList<>
es sicherer , nach stattdessen zu suchen?quelle
quelle
quelle
Basierend auf der Antwort von Victor Rodrigues können wir eine andere Methode für Generika entwickeln. Tatsächlich kann die ursprüngliche Lösung auf nur zwei Zeilen reduziert werden:
quelle
Hier ist eine Implementierung, die in .NET Standard funktioniert und gegen Schnittstellen funktioniert:
Und hier sind die Tests (xunit):
quelle
Ich verwende den folgenden Code:
quelle
Wahrscheinlich wäre der beste Weg, so etwas zu tun:
Dies gibt Ihnen maximale Flexibilität und ermöglicht es Ihnen, mit vielen verschiedenen Typen zu arbeiten, die die
IList
Schnittstelle implementieren .quelle