Comment puis-je convertir un int
type de données en un string
type de données en C #?
Comment puis-je convertir un int
type de données en un string
type de données en C #?
Réponses:
string myString = myInt.ToString();
null
valeurs.
string s = i.ToString();
string s = Convert.ToString(i);
string s = string.Format("{0}", i);
string s = $"{i}";
string s = "" + i;
string s = string.Empty + i;
string s = new StringBuilder().Append(i).ToString();
string count = "" + intCount;
.ToString()
est le moyen le plus efficace d'effectuer la conversion. Toutes les autres méthodes présentées ici finiront par appeler de .ToString()
toute façon.
s
string s = "xyz" + i;
créera une nouvelle chaîne "xyz" - créez la nouvelle chaîne contenant votre entier; puis créez une troisième chaîne qui contient les 2 concaténés. string.Format("xyz{0}", i);
d'autre part, est capable de produire seulement 2 chaînes - car il les concatène en ligne. Cette performance devient plus perceptible à mesure que les cordes s'allongent.
Juste au cas où vous voudriez la représentation binaire et que vous êtes toujours ivre de la soirée des dernières nuits:
private static string ByteToString(int value)
{
StringBuilder builder = new StringBuilder(sizeof(byte) * 8);
BitArray[] bitArrays = BitConverter.GetBytes(value).Reverse().Select(b => new BitArray(new []{b})).ToArray();
foreach (bool bit in bitArrays.SelectMany(bitArray => bitArray.Cast<bool>().Reverse()))
{
builder.Append(bit ? '1' : '0');
}
return builder.ToString();
}
Remarque: quelque chose à propos de ne pas gérer très bien l'endianité ...
Edit: Si cela ne vous dérange pas de sacrifier un peu de mémoire pour la vitesse, vous pouvez utiliser ci-dessous pour générer un tableau avec des valeurs de chaîne pré-calculées:
static void OutputIntegerStringRepresentations()
{
Console.WriteLine("private static string[] integerAsDecimal = new [] {");
for (int i = int.MinValue; i < int.MaxValue; i++)
{
Console.WriteLine("\t\"{0}\",", i);
}
Console.WriteLine("\t\"{0}\"", int.MaxValue);
Console.WriteLine("}");
}
La méthode ToString de tout objet est censée renvoyer une représentation sous forme de chaîne de cet objet.
int var1 = 2;
string var2 = var1.ToString();
Plus loin dans la réponse de @ Xavier, voici une page qui fait des comparaisons de vitesse entre plusieurs façons différentes de faire la conversion de 100 itérations à 21 474 836 itérations.
Cela semble à peu près un lien entre:
int someInt = 0;
someInt.ToString(); //this was fastest half the time
//and
Convert.ToString(someInt); //this was the fastest the other half the time
string str = intVar.ToString();
Dans certaines conditions, vous n'avez pas à utiliser ToString()
string str = "hi " + intVar;
ou:
string s = Convert.ToString(num);
Aucune des réponses n'a mentionné que la ToString()
méthode peut être appliquée à des expressions entières
Debug.Assert((1000*1000).ToString()=="1000000");
même en littéraux entiers
Debug.Assert(256.ToString("X")=="100");
Bien que les littéraux entiers comme celui-ci soient souvent considérés comme un mauvais style de codage ( nombres magiques ), il peut y avoir des cas où cette fonctionnalité est utile ...
using System.ComponentModel;
TypeConverter converter = TypeDescriptor.GetConverter(typeof(int));
string s = (string)converter.ConvertTo(i, typeof(string));
i.ToString
- les autres ne sont là que pour être complets et amusants.
typeof(int)
et typeof(string)
vous pourriez avoir des variables de type et il trouverait et utiliserait un convertisseur approprié chaque fois qu'il en existe un.