我有两个整数,例如.15和6,我想得到156.我做了什么:
int i = 15;
int j = 6;
Convert.ToInt32(i.ToString() + j.ToString());
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?
更新: 谢谢你所有的好答案.我运行快速秒表测试以查看性能影响:这是在我的机器上测试的代码:
static void Main()
{
const int LOOP = 10000000;
int a = 16;
int b = 5;
int result = 0;
Stopwatch sw = Stopwatch.StartNew();
for (int i = 0; i < LOOP; i++)
{
result = AppendIntegers3(a, b);
}
sw.Stop();
Console.WriteLine("{0}ms, LastResult({1})", sw.ElapsedMilliseconds,result);
}
Run Code Online (Sandbox Code Playgroud)
这是时间:
My original attempt: ~3700ms
Guffa 1st answer: ~105ms
Guffa 2nd answer: ~110ms
Pent Ploompuu answer: ~990ms
shenhengbin answer: ~3830ms
dasblinkenlight answer: ~3800ms
Chris Gessler answer: ~105ms
Run Code Online (Sandbox Code Playgroud)
Guffa提供了一个非常好的智能解决方案,Chris Gessler为该解决方案提供了一个非常好的扩展方法.
Guf*_*ffa 16
你可以用数字来做.无需字符串转换:
int i=15;
int j=6;
int c = 1;
while (c <= j) {
i *= 10;
c *= 10;
}
int result = i + j;
Run Code Online (Sandbox Code Playgroud)
要么:
int c = 1;
while (c <= j) c *= 10;
int result = i * c + j;
Run Code Online (Sandbox Code Playgroud)