IList in Array in C # konvertieren

8

Ich möchte IList in Array konvertieren: Bitte sehen Sie meinen Code:

%Vor%

Warum bekomme ich System.InvalidCastException: Mindestens ein Element im Quell-Array konnte nicht auf den Ziel-Array-Typ reduziert werden? Wie kann das gelöst werden, vorausgesetzt, ich kann nicht ArrayList als Typ für list verwenden?

Update 1: Ich benutze .NET 1.1. Also kann ich Generics, Linq und so weiter nicht verwenden. Ich möchte nur Ergebnis für den häufigsten Fall erhalten - Integer wurde als Beispiel angegeben, ich brauche diesen Code für alle Typen, also verwende ich Array hier (vielleicht bin ich falsch mit Array zu verwenden, aber ich brauche, noch einmal, gemeinsamer Fall).

    
Michael Z 29.02.2012, 21:35
quelle

3 Antworten

26

Sie erstellen ein Array von Array values ​​. 1 ist ein int , nicht ein Array . Sie sollten haben:

%Vor%

oder idealerweise nicht die nicht-generischen Typen verwenden, um mit ... zu beginnen, statt ArrayList , IList<T> anstelle von IList etc. verwenden.

EDIT: Beachten Sie, dass die dritte Zeile leicht sein könnte:

%Vor%

stattdessen.

    
Jon Skeet 29.02.2012, 21:38
quelle
15

Sie können Cast und ToArray verwenden:

%Vor%     
Joe 29.02.2012 21:40
quelle
4

Ich bin überrascht, dass

%Vor%

kompiliert sogar, aber es tut nicht, was Sie wollen. Verwenden Sie

%Vor%

Und, Standard Anmerkung: Wenn Sie C # 3 oder später verwenden können, vermeiden Sie ArrayList so viel wie möglich. Sie werden wahrscheinlich mit einem List<int>

glücklicher sein     
Henk Holterman 29.02.2012 21:38
quelle

Tags und Links