Нет ничего плохого в вашем лямбда-выражении - проблема в приведении от IEnumerable<String>
к List<String>
Вы не можете привести к списку, но это должно работать:
chkLst.Items.OfType<ListItem>()
.Where(s => s.Selected)
.Select(s => s.Value).ToList()
.ForEach(item => chkedVal = item + ",");
Вотлучший вариант, используя String.Join(String, IEnumerable<String>
) .Он по-прежнему выбирает строки, но избегает конкатенации строк (и последней запятой!):
string chkedVal = String.Join(",", chkLst.Items.OfType<ListItem>()
.Where(s => s.Selected).Select(s => s.Value))
Или в .Net 3.5 у вас нет такой удобной перегрузки - вам нужно создать массив для String.Join(String, String[])
:
string chkedVal = String.Join(",", chkLst.Items.OfType<ListItem>()
.Where(s => s.Selected)
.Select(s => s.Value).ToArray())