0

Decimal 配列を string 配列に変換する必要があります。decimal[] を string[] に変換する方法は? 使ってもいいですか

Array.ConvertAll()

このタスクを実行する方法は?

4

3 に答える 3

12

はい、Array.ConvertAll非常に簡単に使用できます。変換デリゲートを提供するだけで済みます。これは、ラムダ式で最も簡単に実行できます。

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明らかにそうです。

于 2013-04-18T06:03:03.807 に答える
5

もちろんArray.ConvertAllメソッドも使えます。ラムダ式で簡単にできる会話が必要なだけです。

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ます。

于 2013-04-18T06:03:15.483 に答える
2

これを試して

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

お役に立てれば

于 2013-04-18T06:03:03.717 に答える