2009-11-20 8 views

Répondre

12

Vous ne pouvez pas convertir une chaîne [] droit à une décimale [] comme que - tous les éléments doivent être convertis individuellement au nouveau type. Au lieu de cela, vous pouvez utiliser Array.ConvertAll

string[] txt1 = new string[]{"12","13"}; 
decimal[] dec1 = Array.ConvertAll<string, decimal>(txt1, Convert.ToDecimal); 

Et même en utilisant Convert.ToInt32, Convert.ToSingle, Convert.ToDouble pour l'argument Converter<TInput,TOutput> pour produire int [], float [], double [], en remplaçant les arguments de type correct pour ConvertAll

EDIT: Comme vous utilisez silverlight, qui n'a pas ConvertAll, vous devrez le faire manuellement:

decimal[] dec1 = new decimal[txt1.Length]; 
for (int i=0; i<txt1.Length; i++) { 
    dec1[i] = Convert.ToDecimal(txt1[i]); 
} 
+0

est cela me donnera la décimale résultat [] – Malcolm

+0

Eh oui - la valeur de retour de ConvertAll sera une décimale [] – thecoop

+0

Accepter ceci est-il d'une autre manière que convertAll n'est pas supporté de mon côté – Malcolm