2017-05-04 55 views
0

我正在C#應用程序(.Net 4.0)上工作。在某些情況下,我想下面追加/ Concat多個ushort值

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

提到要追加多個USHORT價值觀和我想要的結果爲12304560700.

目前可以和下面的方法

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

我得到的溫度值作爲123456078.

我明白,由於ushort數據類型,它消除了所有的前導零。但我期待的結果爲12304560700.

我可能使用了padleft方法,但長度和前導零計數沒有修復,所以該選項也不適合我的要求。

我想知道我怎麼能達到同樣的效果,同樣的任何小投入也非常感謝。

在此先感謝。

+0

你從哪裏得到ushort?用戶輸入? – Sweeper

+0

不完全是用戶輸入,而是來自某些連接在局域網中的硬件設備。 – Vsagar

+0

你能證明你究竟是如何獲得價值的?因爲'ushort's不能存儲前導0的東西。你必須使用另一種數據類型。什麼樣的硬件設備?這些數字代表什麼? – Sweeper

回答

0

你想要所有的數字格式化爲3位數字,如果需要前導零。看着Standard Numeric Format Strings你得到這樣的:

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

請注意,長度和領先的零計數是不固定的,所以這不會工作 – Vsagar

+0

那麼長度需要等於最大數量的長度? – themiurge

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.

+0

當然不是。 045與45相同,不需要打印三位數字,只需兩位。因此:b.ToString() - >「45」不是「045」。 – themiurge

0

ushorts不能夠與前導零存儲號碼的。在它的眼中,45045是相同的確切數字。

,我建議你到數字只是存儲爲字符串,像這樣:

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

,這是特別容易,如果你是從控制檯獲得這些事情要做。

+0

也許是這樣的,如果你知道有3個數字,則可以使用下面的代碼:\t $「{a.ToString(」d3「)} {b.ToString(」d3「)} {c.ToString(」d3「)} {d。 。的ToString( 「D3」)}」轉儲(); – loneshark99

0

而不是分配值給ushort分配給字符串或var。

例如:string a =「123」;字符串b =「011」等或var a =「123」等

然後var temp = a + b + ...這將工作。沒有Ushort存儲數據以零開頭。 謝謝