1

我不能修改通用列表:

var x = (PaypalResponse)Session["PaypalResponse"]; // x.Response is my List

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

我在哪里做错了?谢谢。

4

1 回答 1

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;
于 2013-06-29T19:46:40.510 回答