11

数値を含む文字列の配列を考えてみましょう:

string[] intArray = {"25", "65" , "0"};

List<int>を使用せずに数値をロードしforたりwhile、を反復処理したりする最もエレガントな方法は何intArrayですか?

4

5 に答える 5

27

Enumerable.Selectメソッドを使用できます

List<int> intList = intArray.Select(str => int.Parse(str)).ToList();
于 2013-09-30T06:26:12.833 に答える
18

(ドミトリーの答えへの追加)
ラムダを取り除くことができます。そのメソッドにはすでに正しい署名があるからです:

List<int> intList = intArray.Select(Int32.Parse).ToList();
于 2013-09-30T06:30:51.880 に答える
3

呼び出すだけSelect()です:

using System.Linq;

var list = intArray.Select(x => Convert.ToInt32(x));

PS: 最初に回答した後、質問が変更されました。

于 2013-09-30T06:25:29.433 に答える
2

これはそれを行う方法です..

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));
于 2013-09-30T06:32:54.383 に答える
0

誰も言及しなかったことに驚いた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();
于 2013-09-30T13:43:16.360 に答える