Страницы

Поиск по вопросам

суббота, 14 декабря 2019 г.

Условие If в лямбда выражении

#c_sharp #linq


Есть конструкция вида List> которая используется для формирования
строки. Строку формирую так 

var val = String.Join(",", insert_res.Where(d => d.Item3 == 0)
                .Select(d => "'" + d.Item2 + "'"));




Но в зависимости от значения второго строкового параметра мне надо возвращать не
в кавычках "'" + d.Item2 + "'", а например в круглых скобках, возможно поместить туда
проверку?
    


Ответы

Ответ 1



Есть несколько вариянтов. Можно использовать тернарный оператор: var val = String.Join(",", insert_res .Where(d => d.Item3 == 0) .Select(d => condition ? "'" + d.Item2 + "'" : "(" + d.Item2 + ")")); Тоже можно использовать ламбда блок вместо ламбда выражения: var val = String.Join(",", insert_res .Where(d => d.Item3 == 0) .Select(d => { if (condition) { return "'" + d.Item2 + "'"; } return "(" + d.Item2 + ")"; }));

Комментариев нет:

Отправить комментарий