Come posso convertire un int
tipo di dati in un string
tipo di dati in C #?
Come posso convertire un int
tipo di dati in un string
tipo di dati in C #?
Risposte:
string myString = myInt.ToString();
null
valori.
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()
è il modo più efficiente per eseguire la conversione. Tutti gli altri metodi qui presentati alla fine chiameranno .ToString()
comunque.
s
string s = "xyz" + i;
creerà una nuova stringa "xyz" - crea la nuova stringa contenente il tuo numero intero; e quindi creare una terza stringa che contiene i 2 concessi. string.Format("xyz{0}", i);
d'altra parte, è in grado di produrre solo 2 stringhe, poiché le sta concatenando in linea. Questa prestazione diventa più evidente man mano che le stringhe si allungano.
Nel caso in cui desideri la rappresentazione binaria e sei ancora ubriaco dalla festa delle ultime notti:
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();
}
Nota: qualcosa sul non gestire l'endianità molto bene ...
Modifica: se non ti dispiace sacrificare un po 'di memoria per la velocità, puoi utilizzare di seguito per generare un array con valori di stringa precalcolati:
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("}");
}
Il metodo ToString di qualsiasi oggetto dovrebbe restituire una rappresentazione in formato stringa di quell'oggetto.
int var1 = 2;
string var2 = var1.ToString();
Più avanti alla risposta di @ Xavier, ecco una pagina che velocizza i confronti tra diversi modi di fare la conversione da 100 iterazioni a 21.474.836 iterazioni.
Sembra praticamente un pareggio tra:
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();
In alcune condizioni, non è necessario utilizzare ToString()
string str = "hi " + intVar;
o:
string s = Convert.ToString(num);
Nessuna delle risposte ha indicato che il ToString()
metodo può essere applicato a espressioni intere
Debug.Assert((1000*1000).ToString()=="1000000");
anche a numeri interi
Debug.Assert(256.ToString("X")=="100");
Sebbene letterali interi come questo siano spesso considerati cattivi stili di codifica ( numeri magici ), ci possono essere casi in cui questa funzione è utile ...
using System.ComponentModel;
TypeConverter converter = TypeDescriptor.GetConverter(typeof(int));
string s = (string)converter.ConvertTo(i, typeof(string));
i.ToString
- il resto è qui solo per motivi di completezza e divertimento.
typeof(int)
e typeof(string)
potresti avere variabili Type e troverebbe e userebbe un convertitore appropriato ogni volta che esiste.