文字列形式の整数の配列があります:
var arr = new string[] { "1", "2", "3", "4" };
さらにプッシュするには、「実際の」整数の配列が必要です。
void Foo(int[] arr) { .. }
私はintをキャストしようとしましたが、もちろん失敗しました:
Foo(arr.Cast<int>.ToArray());
次にできること:
var list = new List<int>(arr.Length);
arr.ForEach(i => list.Add(Int32.Parse(i))); // maybe Convert.ToInt32() is better?
Foo(list.ToArray());
または
var list = new List<int>(arr.Length);
arr.ForEach(i =>
{
int j;
if (Int32.TryParse(i, out j)) // TryParse is faster, yeah
{
list.Add(j);
}
}
Foo(list.ToArray());
しかし、どちらも醜く見えます。
タスクを完了する他の方法はありますか?
3
1つのコレクションを繰り返し処理して値を変換し、2番目のコレクションに追加することの何が問題になっていますか?私の意図はかなりはっきりしているようです。
—
Ed S.
それ以外の場合は、msdn.microsoft.com / en
—
Ed S.
ただ、FYI、私はここにこの質問を使用しています:stackoverflow.com/questions/1297325/...
—
アレンライス
TryParseは(あなたの文字列が無効であるが、その場合にはあなたがいる場合を除いて速くないしたい例外はあなたに警告します)。
—
usr