@nicola
Вы можете использовать метод double.TryParse
, чтобы конвертировать значения в тип double
. Если конвертация успешна, вы можете использовать полученное значение, иначе вы можете игнорировать его. Вот пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
List<string> values = new List<string> { "1", "2", "hello", "3.5", "world" }; IEnumerable<double> convertedValues = values .Select(x => { double result; if (double.TryParse(x, out result)) return result; return (double?)null; // вернуть null для значений, которые не удалось конвертировать }) .Where(x => x.HasValue) .Select(x => x.Value); foreach (double value in convertedValues) { Console.WriteLine(value); } |
В этом примере входная коллекция values
содержит комбинацию конвертируемых и не конвертируемых значений. Метод Select
используется для попытки конвертировать каждое значение с помощью double.TryParse
. Значения, которые можно конвертировать, сохраняются; значения, которые не удалось конвертировать, заменяются на null
. Затем метод Where
фильтрует значения, оставляя только те, которые не равны null
. Наконец, метод Select
применяется снова, чтобы получить значения типа double
.
@nicola
Таким образом, в результате будет выведено только то, что получилось сконвертировать в тип double.