Преобразуйте строку [] к интервалу [] в одной строке кода с помощью LINQ

При необходимости в особом представлении с плавающей точкой необходимо будет создать это семантически от самого плавания, не копированием бита.

c0x стандарт: http://c0x.coding-guidelines.com/5.2.4.2.2.html не определяет формат чисел с плавающей точкой.

252
задан abatishchev 17 November 2014 в 11:54
поделиться

4 ответа

Для данного массива вы можете использовать метод Array.ConvertAll :

int[] myInts = Array.ConvertAll(arr, s => int.Parse(s));

Спасибо Марку Гравеллу за указание на то, что лямбда-выражение можно опустить, что дает более короткую версию, показанную ниже:

int[] myInts = Array.ConvertAll(arr, int.Parse);

Решение LINQ аналогично, за исключением того, что вам потребуется дополнительный вызов ToArray для получения array:

int[] myInts = arr.Select(int.Parse).ToArray();
572
ответ дан 23 November 2019 в 02:51
поделиться

РЕДАКТИРОВАТЬ: преобразовать в массив

int[] asIntegers = arr.Select(s => int.Parse(s)).ToArray();

Это должно помочь:

var asIntegers = arr.Select(s => int.Parse(s));
31
ответ дан 23 November 2019 в 02:51
поделиться
var asIntegers = arr.Select(s => int.Parse(s)).ToArray(); 

Необходимо убедиться, что вы не получаете IEnumerable в качестве возврата

3
ответ дан 23 November 2019 в 02:51
поделиться
var list = arr.Select(i => Int32.Parse(i));
2
ответ дан 23 November 2019 в 02:51
поделиться