修改通用列表中的项目

时间:2013-06-29 19:41:48

标签: c# list generics

我不能用:

修改通用列表
var x = (PaypalResponse)Session["PaypalResponse"]; // x.Response is my List

x.Response.ToList().Where(i => i.Id== 1).ForEach(s => s.Selected = true);
我在哪里做错了? 感谢。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

x.Response.Where(i => i.Id == 1).ToList().ForEach(s => s.Selected = true);

但是,为这一行代码构建一个新列表有点浪费资源。我建议改为:

foreach(var s in x.Response.Where(i => i.Id == 1))
{
    s.Selected = true;
}

如果您只想更新一个项目,则可以改为:

var s = x.Response.FirstOrDefault(i => i.Id == 1);
if (s != null)
{
    s.Selected = true;
}

当然,如果您知道将会有一个项目需要更新,那就更容易了:

x.Response.First(i => i.Id == 1).Selected = true;