簡體   English   中英

如何在C#中將十進制數組轉換為字符串數組?

[英]How to convert decimal array to string array in C#?

我需要將小數數組轉換為字符串數組。 如何轉換十進制[]到字符串[]? 我可以用嗎

Array.ConvertAll()

方法來完成這項任務?

是的,您可以非常簡單地使用Array.ConvertAll您只需要提供轉換委托,而使用lambda表達式最容易做到:

string[] strings = Array.ConvertAll(numbers, x => x.ToString());

可以使用LINQ效率稍差一些,但在慣用性和靈活性上更高:

string[] strings = numbers.Select(x => x.ToString()).ToArray();

或者,如果您實際上並不需要數組,並且對每次迭代對其執行字符串轉換感到滿意,則:

IEnumerable<string> strings = numbers.Select(x => x.ToString());

這里的靈活性是numbers可以更改為任何 IEnumerable<decimal> -因此,如果更改為使用List<decimal> ,則無需更改此轉換代碼。

調用ToArray時效率稍有下降,是因為調用Select的結果是一個延遲計算的序列,該序列不知道其大小以開始-因此它無法立即知道輸出數組的確切大小,而ConvertAll顯然可以。

當然可以使用Array.ConvertAll方法。 您只需要一個可以通過lambda表達式輕松完成的對話。

string[] string_array = Array.ConvertAll(decimal_array, x => x.ToString());

Array.ConvertAll轉換整個數組。 它將一個數組中的所有元素轉換為另一種類型。

讓我們編寫代碼;

decimal[] decimal_array = new decimal[] {1.1M, 1.2M, 1.3M, 1.4M };
string[] string_array = Array.ConvertAll(decimal_array, x => x.ToString());

foreach (var item in string_array)
{
      Console.WriteLine("{0} - {1}", item.GetType(), item);
}

輸出將是;

System.String - 1.1
System.String - 1.2
System.String - 1.3
System.String - 1.4

這是一個DEMO

嘗試這個

decimal[] decArr = new decimal[5];
// ...
string[] strArr = decArr.Select(d => d.ToString("0.00")).ToArray();

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM