1
我在c#中有一个对象需要被复制多次和快速。复制对象的最快方法
目前我与
public static void CopyFieldsInto<T>(T from, T to,bool ommitNulls=false) where T : new()
{
foreach (var f in GetAllFieldsByType<T>())
{
var v = f.GetValue(from);
if (ommitNulls&&v==null)
{
continue;
}
f.SetValue(to, v);
}
}
问题这样做是GetValue
和SetValue
耗时太久,慢下来。
有没有更好的方法来做到这一点?
你控制对象的源代码吗?你可以实现一个接口来帮助这个,然后你不需要使用反射。如果你必须能够为任意物体做到这一点,反射是你唯一的选择。 – xxbbcc
我正在考虑这样做。但是,手动查看每个字段非常耗时,并且稍后可能会导致问题,当我添加其他字段并忘记在克隆方法中提及它们时 –
看看http://stackoverflow.com/questions/5476575/具有更好性能的克隆 – HimBromBeere