Операторы if в вашем примере не нужны. Просто сделайте это так:
dosomething1 || exit 1
Если вы берете совет Ville Laurikari и используете set -e
, то для некоторых команд вам может понадобиться использовать это:
dosomething || true
Кнопка || true
приведет к тому, что конвейер команды получит возвращаемое значение true
, даже если команда не будет выполнена, поэтому опция -e
не будет убивать скрипт.
Полагаю, вы забыли использовать параметр mapping
? Вы должны использовать его!
return response.Results
.Select(r => r.Document)
.Select(mapping)
.ToList(); // you don't need ToList here, unless you don't want the results to be lazy
mapping
- это функция, которая преобразует каждое T
в вашем списке в TResult
.
Вы возвращаете список Document
объектов, но подписываете метод с типом возврата IEnumerable<TResult>
... так что, если TResult
не является типом того, чем является Document
(для которого требуется ограничение, на T
и TResult
), они не являются напрямую конвертируемыми.
Существует параметр mapping
, который выглядит как функция преобразования / проецирования, поэтому вы можете использовать:
return response.Results.Select(mapping);
PS: как нашёл @Sweeper, посмотрев на API, должно быть:
return response.Results.Select(x => Document).Select(mapping);
Какова связь между типом TResult
и типом r.Document
. Возможно, вы пропустили ограничение на TResult
?