我正在尝试修剪C#中IEnumerable<SelectListItem>
项的值/文本组合。我可以使用下面的代码执行此操作,但想知道是否可以使用Linq完成?
IEnumerable<SelectListItem> list = //function that fills the IEnumerable<SelectListItem>;
foreach (SelectListItem item in list)
{
item.Value = item.Value.Trim();
item.Text = item.Text.Trim();
}
答案 0 :(得分:4)
LINQ旨在定义查询。你有什么不是一个查询;它正在修改/改变项目。因此,LINQ不是一个有效的工具,一个foreach
循环(你的实现就好了)。如果你想使用LINQ,那就是创建全新的项目,而不是修改现有的项目。这可能是也可能不是你真正想做的事情。如果是,那就是:
list.Select(item => new SelectListItem()
{
Value = item.Value.Trim(),
Text = item.Text.Trim(),
});
答案 1 :(得分:1)
var result = list.Select(x => new SelectListItem {
Value = x.Value.Trim(),
Text = x.Text.Trim()
});
我相信这应该可以解决问题。顺便说一句,为什么你的工作没有?