【发布时间】:2017-09-28 17:23:07
【问题描述】:
我正在尝试将 Linq 返回的对象分配给具有相同类的新对象,例如:
object x = (object) y
实际代码示例:
public void update(Person person){
//Persons is observable collection
Person found = Persons.FirstOrDefault(x => x.Id == person.Id);
found = person; //Persons not changing
}
Person newPerson = new Person(1, "Andy");
update(newPerson);
我尝试过克隆:
public void update(Person person){
//Persons is observable collection
Person found = Persons.FirstOrDefault(x => x.Id == person.Id);
found = person.Clone(); // CLONING but Persons STILL NOT changing
}
Person newPerson = new Person(1, "Andy");
update(newPerson);
Persons observablecollection 变量保持不变。我看不出代码有什么问题,有什么建议吗?
编辑:抱歉之前的语法错误。
【问题讨论】:
-
function关键字有什么用?发布您的实际工作代码。 -
您是否要替换 ObservableCollection 中的对象?
-
恐怕你错过了一些基本的c#知识。您只需将
person引用 分配给您的局部变量found。这不会改变您之前在Persons集合中找到的 instance。 -
抱歉大家的错字。 @RenéVogt,当然,但是 found.Name = person.Name 是如何工作的?
-
@tonywei 是的,这会改变您在收藏中找到的实例的
Name属性。