Как избежать ошибки, если никакие потоки данных не соответствуют условию в запросе linq?


Я работаю, чтобы выбрать станции в соответствии со следующим кодом условий

var NStations = stations.AsEnumerable()
                        .Where(r => r.Field<double>("Distance") < SP_Radius)
                        .OrderBy(r => r.Field<double>("Distance"))
                        .CopyToDataTable();

Проблема если никакие данные не соответствуют первому условию, я получу ошибку остановить программу.

Как я могу избежать этой проблемы, когда datarow не извлекается?

Ошибка:

Источник не содержит потоков данных.

Он проверяет первое условие и один переходит ко второму условию, чтобы приказать ему дать вышеуказанную ошибку.

1 2

1 ответ:

Вы можете разделить запрос на две части:

var result = stations.AsEnumerable()
             .Where(r => r.Field<double>("Distance") < SP_Radius);

if(result.Any())
{ 
   var NStations = result.OrderBy(r => r.Field<double>("Distance"))
                         .CopyToDataTable();
}