【发布时间】:2021-07-07 10:13:07
【问题描述】:
我正在努力仅使用给定键更新对象。
现在我可以使用这个更新:
public class Person {
public int Id {get;set;}
public string Name {get;set;}
public string Highest {get;set;}
public ..... (so many more)
}
这是我正在使用的。
var model = db.Person.Find(1);
model.Highest = "20 meters";
我想要它表现得像一个数组,我只会根据以下键更新数据:
var key = "Highest";
var model = db.Person.Find(1);
model[key] = "20 meters";
这样我就可以将其用作函数
public Person UpdateData(Person model,string key,string newvalue){
model[key] = newvalue;
return model;
}
我想先将其转换为数组,然后更新,然后再转换回对象。但我找不到将其转换为数组的方法。
你有什么建议吗?
【问题讨论】:
-
使用反射 API 可以做到这一点。但是,如果您需要在一个紧凑的、性能繁重的循环中执行此操作,它将受到影响。为什么你首先需要这样做?如果新值不是字符串会发生什么?
-
你想做什么,为什么?您正在使用对象,而不是字典。这些是属性,而不是键。如果您不想使用强类型对象,请不要使用 ORM。使用 DataTable 会更容易
-
为什么要按名称设置属性?很重要