2011-06-07 2 views
2

Je dois créer une vérification de module qui ajoute des chiffres principaux, disons 0, à un int de départ. J'ai ensuite besoin de retourner un tableau de chiffres dans le tableau car j'ai besoin de faire un calcul sur chaque chiffre pour retourner un nouveau nombre entier.besoin d'un meilleur moyen d'ajouter des chiffres initiaux à int et retourner tableau de chiffres

mon code est le suivant,

var seed = 1234; 
var seedString = seed.ToString(); 
var test = new List<int>(); 

for(int i = 0; i < 10 - seedString.Length; i++) 
{ 
    test.Add(0); 
} 

var value = seed; 
for(int i = 0; i < seedString.Length; i ++) 
{ 

    test.Insert(10 - seedString.Length, value % 10); 
    value = value/10; 

} 

est-il un moyen plus facile de le faire?

Répondre

5

Si vous voulez convertir votre numéro à une chaîne de 10 chiffres, vous pouvez formater le numéro à l'aide d'un comme suit:

string result = seed.ToString("0000000000"); 
// result == "00000" 

Voir: The "0" Custom Specifier


Si vous avez besoin d'un tableau à 10 éléments comprenant des chiffres individuels, essayez ceci:

int[] result = new int[10]; 
for (int value = seed, i = result.Length; value != 0; value /= 10) 
{ 
    result[--i] = value % 10; 
} 
// result == new int[] { 0, 0, 0, 0, 0, 0, 1, 2, 3, 4 } 

Voir aussi: Fastest way to separate the digits of an int into an array in .NET?

2

Essayez ceci:

int myNumber = 1234; 
string myStringNumber = myNumber.ToString().PadLeft(10, '0'); 

HTH

+0

Vous pouvez ensuite utiliser '.ToCharArray()' pour obtenir un tableau de caractères. Soustraire ''0 '' de chaque caractère devrait donner la valeur int dont vous avez besoin. – Heinzi

0

Une autre façon rapide d'obtenir la représentation de chaîne serait

int num = 1234; 
num.ToString("D10"); 
Questions connexes