Преобразуйте строку [] в int [] в одну строку кода, используя LINQ

У меня есть массив целых чисел в виде строки:

var arr = new string[] { "1", "2", "3", "4" };

Мне нужно массивреальный» целые числа, чтобы подтолкнуть его дальше:

void Foo(int[] arr) { .. }

Я пытался привести int, и это, конечно, не удалось:

Foo(arr.Cast.ToArray());

Я могу сделать следующее:

var list = new List(arr.Length);
arr.ForEach(i => list.Add(Int32.Parse(i))); // maybe Convert.ToInt32() is better?
Foo(list.ToArray());

или же

var list = new List(arr.Length);
arr.ForEach(i =>
{
   int j;
   if (Int32.TryParse(i, out j)) // TryParse is faster, yeah
   {
      list.Add(j);
   }
 }
 Foo(list.ToArray());

но оба выглядят некрасиво.

Есть ли другие способы выполнить задачу?

Ответы на вопрос(6)

Ваш ответ на вопрос