Answers:
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的3rd字符串。 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("}");
}
没有答案提到该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));
i.ToString
-其余的只是为了完整性和乐趣。
typeof(int)
并且typeof(string)
只要有变量就可以找到并使用适当的转换器。