Wie bekomme ich die Artikelanzahl von einer IList als Objekt?

9

In einer Methode erhalte ich object .

In einigen Situationen kann diese object eine IList von "etwas" sein (ich habe keine Kontrolle über dieses "Etwas").

Ich versuche es:

  1. Identifizieren Sie, dass dieses Objekt ein IList (von etwas)
  2. ist
  3. Wirf das object in ein " IList<something> " um das Count daraus zu bekommen.

Vorerst bin ich fest und suche nach Ideen.

    
remio 25.01.2012, 09:29
quelle

4 Antworten

18

Sie können überprüfen, ob Ihr object IList mit is implementiert.

Dann kannst du deine object auf IList umwandeln, um die Anzahl zu erhalten.

%Vor%     
dknaack 25.01.2012, 09:34
quelle
4
%Vor%     
Danny Varod 25.01.2012 09:34
quelle
1
%Vor%

Dies druckt 3, weil int [] eine IList ist.

    
Petar Ivanov 25.01.2012 09:37
quelle
0

Da Sie nur die Anzahl haben möchten, können Sie die Tatsache nutzen, dass alles, was IList<T> implementiert, auch IEnumerable ; Außerdem gibt es eine Erweiterungsmethode in System.Linq.Enumerable , die die Anzahl einer (generischen) Sequenz zurückgibt:

%Vor%

Der Aufruf von Cast erfolgt, weil nicht standardmäßig Count auf nicht generische IEnumerable .

    
AakashM 25.01.2012 09:49
quelle