追加/ Concat多个ushort值

时间:2017-05-04 05:36:29

标签: c# number-formatting concat ushort

我正在研究C#应用程序(.Net 4.0)。在某些情况下,我想附加多个ushort值,如下所述

Ushort a = 123;
Ushort b = 045;
Ushort c = 607;
Ushort d = 008;

我希望结果为12304560700。

目前采用以下方法

var temp = Convert.ToString(a) + Convert.ToString(b) + Convert.ToString(c) + Convert.ToString(d);

我得到的临时值为123456078。

我明白因为ushort数据类型它消除了所有前导零。但我期待结果为12304560700.

我可能已经使用了padleft方法但是长度和前导零计数没有修复,因此该选项也不符合我的要求。

我想知道如何实现同样的目标,同样的任何小输入也非常感激。

提前致谢。

4 个答案:

答案 0 :(得分:0)

您希望所有数字都使用3位数字格式化,如果需要,可以使用前导零。看Standard Numeric Format Strings你就明白了:

var temp = a.ToString("D3") + b.ToString("D3") + ...

答案 1 :(得分:0)

int a = 123;
int b = 045;
int c = 607;
int d = 008;

为什么你不能这样做?结果不是你想要的吗?

int temp = a.ToString() + b.ToString() + c.ToString() + d.Substring(d.Length - 2);

结果为12304560700。

答案 2 :(得分:0)

ushorts无法存储前导零的数字。在它的眼里,45045是完全相同的数字。

我建议您只将数字存储为字符串,如下所示:

var a = "123";
var b = "045";
var c = "607";
var d = "008";

如果从控制台获取这些内容,这将非常容易。

答案 3 :(得分:0)

不是将值赋给ushort,而是将其分配给string或var。

例如:string a =" 123&#34 ;; string b =" 011"等或var a =" 123"等

然后var temp = a + b + ...这将有效。没有Ushort值存储以Zero为前导的数据。 谢谢