case "$1" in
"") echo "blank";;
*) echo "set"
esac
Вы используете лямбда-выражения - они просто скрыты за счет использования вами операторов запроса C #.
Учтите, что это:
IEnumerable<int> allChecked = (from item in chkBoxList.Items.Cast<ListItem>()
where item.Selected
select int.Parse(item.Value));
Компилируется так:
IEnumerable<int> allChecked = chkBoxList.Items.Cast<ListItem>()
.Where(i => i.Selected)
.Select(i => int.Parse(i.Value));
Как видите, вы уже используете два лямбда-выражения (они являются параметрами методов Where
и Select
), и вы даже не знали об этом! С этим запросом все в порядке, я бы вообще не стал его менять.
Я бы улучшил выражение запроса, сделав неявный вызов Cast
:
IEnumerable<int> allChecked = from ListItem item in chkBoxList.Items
where item.Selected
select int.Parse(item.Value);
Когда вы указываете тип переменной диапазона, компилятор вставляет позвоните в Cast
для вас.
В остальном я полностью согласен с Эндрю.
РЕДАКТИРОВАТЬ: Для GONeale:
IEnumerable<int> allChecked = chkBoxList.Items
.Cast<ListItem>()
.Where(item => item.Selected)
.Select(item => int.Parse(item.Value));