使用Linq从SelectItemList修剪值和文本

时间:2013-10-31 20:39:11

标签: c# asp.net linq

我正在尝试修剪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();
}

2 个答案:

答案 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()
  });

我相信这应该可以解决问题。顺便说一句,为什么你的工作没有?