Wie kann ich int
einen string
Datentyp in C # in einen Datentyp konvertieren ?
Wie kann ich int
einen string
Datentyp in C # in einen Datentyp konvertieren ?
Antworten:
string myString = myInt.ToString();
null
Werte aus.
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()
ist der effizienteste Weg, um die Konvertierung durchzuführen. Alle anderen hier vorgestellten Methoden werden schließlich .ToString()
trotzdem aufgerufen .
s
string s = "xyz" + i;
erstellt einen neuen "xyz" -String - erstellt den neuen String, der Ihre Ganzzahl enthält; und erstellen Sie dann eine dritte Zeichenfolge, die die 2 verketteten enthält. string.Format("xyz{0}", i);
Auf der anderen Seite können nur 2 Zeichenfolgen erzeugt werden, da sie inline verkettet werden. Diese Leistung wird deutlicher, wenn die Saiten länger werden.
Nur für den Fall, dass Sie die binäre Darstellung möchten und immer noch von der Party der letzten Nächte betrunken sind:
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();
}
Hinweis: Etwas über den nicht guten Umgang mit Endianness ...
Bearbeiten: Wenn es Ihnen nichts ausmacht, ein wenig Speicher für die Geschwindigkeit zu opfern, können Sie unten ein Array mit vorberechneten Zeichenfolgenwerten generieren:
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("}");
}
Die ToString-Methode eines Objekts soll eine Zeichenfolgendarstellung dieses Objekts zurückgeben.
int var1 = 2;
string var2 = var1.ToString();
Nach der Antwort von @ Xavier finden Sie hier eine Seite, auf der Vergleiche zwischen verschiedenen Methoden für die Konvertierung von 100 Iterationen auf 21.474.836 Iterationen durchgeführt werden.
Es scheint so ziemlich eine Verbindung zwischen:
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();
Unter bestimmten Umständen müssen Sie nicht verwenden ToString()
string str = "hi " + intVar;
oder:
string s = Convert.ToString(num);
In keiner der Antworten wurde erwähnt, dass die ToString()
Methode auf ganzzahlige Ausdrücke angewendet werden kann
Debug.Assert((1000*1000).ToString()=="1000000");
sogar zu ganzzahligen Literalen
Debug.Assert(256.ToString("X")=="100");
Obwohl solche ganzzahligen Literale oft als schlechter Codierungsstil ( magische Zahlen ) angesehen werden, kann es Fälle geben, in denen diese Funktion nützlich ist ...
using System.ComponentModel;
TypeConverter converter = TypeDescriptor.GetConverter(typeof(int));
string s = (string)converter.ConvertTo(i, typeof(string));
i.ToString
- der Rest ist nur der Vollständigkeit halber und zum Spaß hier.
typeof(int)
und typeof(string)
Sie könnten Typvariablen haben und sie würde einen geeigneten Konverter finden und verwenden, wann immer einer existiert.