@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.