답변:
string myString = myInt.ToString();
null
값에 대한 예외를 발생 시킵니다.
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()
가장 효율적인 전환 방법입니다. 여기에 제시된 다른 모든 방법은 결국 .ToString()
어쨌든 호출 됩니다.
s
string s = "xyz" + i;
새로운 "xyz"문자열을 만듭니다-정수를 포함하는 새 문자열을 만듭니다. 연결된 2 개를 포함하는 3 번째 문자열을 만듭니다. string.Format("xyz{0}", i);
반면에 인라인으로 연결하기 때문에 2 개의 문자열 만 생성 할 수 있습니다. 줄이 길어질수록이 성능이 더욱 두드러집니다.
이진 표현을 원하고 어젯밤 파티에서 여전히 취한 경우를 대비하여 :
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();
}
참고 : 엔디안을 아주 잘 다루지 않는 것에 대한 것 ...
편집 : 속도를 위해 약간의 메모리를 희생하지 않으려면 아래를 사용하여 미리 계산 된 문자열 값으로 배열을 생성 할 수 있습니다.
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("}");
}
자비에르의 응답 @에에 또한, 여기에 속도 비교를 수행하는 페이지입니다 21,474,836 반복에 100 개 반복에서 변환을 수행하는 여러 가지 방법 사이는.
그것은 거의 다음과 같은 넥타이로 보입니다.
int someInt = 0;
someInt.ToString(); //this was fastest half the time
//and
Convert.ToString(someInt); //this was the fastest the other half the time
답 중 어느 것도 ToString()
메소드 가 정수 표현식에 적용될 수 있다고 언급하지 않았습니다.
Debug.Assert((1000*1000).ToString()=="1000000");
도에 정수 리터럴
Debug.Assert(256.ToString("X")=="100");
이와 같은 정수 리터럴은 종종 나쁜 코딩 스타일 ( 매직 숫자 )로 간주되지만 이 기능이 유용한 경우가 있습니다 ...
using System.ComponentModel;
TypeConverter converter = TypeDescriptor.GetConverter(typeof(int));
string s = (string)converter.ConvertTo(i, typeof(string));
typeof(int)
그리고 typeof(string)
당신이 유형의 변수를 가질 수 있고, 그것을 찾을 것 하나가 존재 때마다 적절한 컨버터를 사용합니다.