数値を含む文字列の配列を考えてみましょう:
string[] intArray = {"25", "65" , "0"};
List<int>
を使用せずに数値をロードしfor
たりwhile
、を反復処理したりする最もエレガントな方法は何intArray
ですか?
数値を含む文字列の配列を考えてみましょう:
string[] intArray = {"25", "65" , "0"};
List<int>
を使用せずに数値をロードしfor
たりwhile
、を反復処理したりする最もエレガントな方法は何intArray
ですか?
Enumerable.Selectメソッドを使用できます
List<int> intList = intArray.Select(str => int.Parse(str)).ToList();
(ドミトリーの答えへの追加)
ラムダを取り除くことができます。そのメソッドにはすでに正しい署名があるからです:
List<int> intList = intArray.Select(Int32.Parse).ToList();
呼び出すだけSelect()
です:
using System.Linq;
var list = intArray.Select(x => Convert.ToInt32(x));
PS: 最初に回答した後、質問が変更されました。
これはそれを行う方法です..
string[] intArray = { "25", "65", "0" };
List<int> intList = new List<int>(Array.ConvertAll(intArray, s => int.Parse(s)));
また
string[] intArray = { "25", "65", "0" };
List<int> intList = new List<int>(intArray.Select(int.Parse).ToArray());
また
string[] intArray = { "25", "65", "0" };
List<int> intList = new List<int>(Array.ConvertAll(intArray, int.Parse));
誰も言及しなかったことに驚いたint.TryParse
string[] intArray = { "25", "65", "0" };
int tempNumber;
List<int> list = intArray.Select(r => int.TryParse(r, out tempNumber)
? tempNumber : -1)
.ToList();
これは、無効な入力を処理し-1
、値として返します。(エラーまたは を指定する任意の数値にすることができます0
)
intArray
解析可能な整数のみが含まれる場合は、次のようにします。
List<int> list = intArray.Select(int.Parse).ToList();