【问题标题】:C# update object in listC# 更新列表中的对象
【发布时间】:2017-05-30 12:01:57
【问题描述】:

我有一个带有public List<someView> list; 的存储库 是否不可能像这样使用 linq 获取项目并更新/替换整个对象,以便立即全局更新列表中的对象?

...
var item = list.SingleOrDefault(m => m.Id== viewModel.Id);
if (item != null)
{
    item = viewModel;
}
...

【问题讨论】:

  • 您将 reference item 设置为一个新对象,而不是 item 最初引用的对象。这就是引用对象的工作方式。如果要替换列表中的项目,则需要删除并重新添加它

标签: c# model-view-controller


【解决方案1】:

不是因为item只是一个局部变量,但是你可以使用列表的索引器:

int index = list.FindIndex(m => m.Id == viewModel.Id);
if(index >= 0)
    list[index] = viewModel;

【讨论】:

  • 所以你是 3 年后重复问题的 FGITW。我敢打赌你3年没睡,等着有人来骗这个问题!
  • 实际上看过之前关于这个问题的问题,但它们太复杂了,其中很多只是更新单个属性;)
  • @DragandDrop:哦,确实,你是对的。这就是为什么我需要再来一杯咖啡
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-28
  • 2013-11-03
  • 2022-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多