Bestimmen Sie, ob es sich bei der Eigenschaft um eine generische Liste von T über Reflection- und Loop-Listenelemente handelt

8

Ich schleife alle Eigenschaften in einem Objekt durch Reflexion:

%Vor%

Kann mir jemand sagen, wie ich feststellen kann, ob die fragliche Eigenschaft eine generische Liste (Of T) ist? Wenn es ist, muss ich die Liste selbst loopen.

Ich habe mit GetType und TypeOf experimentiert, aber es ist mir nicht gelungen, etwas zum Laufen zu bringen.

Danke.

**** Aktualisierung und Klarstellung **

Um zu verdeutlichen, möchte ich das generisch halten. Ich möchte den Typ von T nicht angeben, ich muss die Listenelemente in einer Schleife ausführen und die ToString-Methode für jedes Element aufrufen. T könnte einer von mehreren verschiedenen Typen sein (anwendungsspezifische Referenztypen). Ist es möglich, dies ohne Angabe von Typen zu tun?

(VB.NET 2005 mit .Net 2.0)

    
Simon 01.10.2009, 13:29
quelle

4 Antworten

4

Hier ist Roatins Antwort in VB.Net, Complete Console Application

%Vor%     
Ryu 01.10.2009, 16:25
quelle
13

Probieren Sie diese vollständige Konsolenanwendung aus. Tut mir leid, es ist in C #.

%Vor%     
Roatin Marth 01.10.2009 16:24
quelle
0

Hier gehts in VB.NET. (Ich benutze .NET 4.5). Wenn das ursprüngliche Objekt List (von T) mit dem Variablennamen = MyData ist, dann

%Vor%

Der obige Code gibt alle Eigenschaften in der MyData-Liste an.

Wenn Sie die Eigenschaften in der Hauptliste (MyData) durchlaufen und herausfinden möchten, ob eine einzelne Eigenschaft selbst ein Listentyp ist, verwenden Sie unten for loop. Sie können die IsGenericType-Überprüfung entfernen, wenn dies auf Grundlage Ihrer Anforderung nicht erforderlich ist.

%Vor%     
Venkat 30.07.2015 09:57
quelle
-1
%Vor%     
Preet Sangha 01.10.2009 13:35
quelle

Tags und Links