我不能修改通用列表:
var x = (PaypalResponse)Session["PaypalResponse"]; // x.Response is my List
x.Response.ToList().Where(i => i.Id== 1).ForEach(s => s.Selected = true);
我在哪里做错了?谢谢。
你可以这样做:
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;