1 .net c# .net-core asp.net-core jsonconvert
我有两个相同类型的复杂对象。我想检查这两个对象之间是否有任何区别。我有两种选择来实现此目的,要么使用 JsonConvert.SerializeObject 将这两个对象转换为字符串,然后比较字符串,例如
var existingData = JsonConvert.SerializeObject(objOld);
var newData = JsonConvert.SerializeObject(objNew);
return existingData == newData;
Run Code Online (Sandbox Code Playgroud)
另一种选择是使用反射并循环遍历所有属性,如下所示。
protected bool MatchObject(object newObj, object oldObj)
{
Type currentType = newObj.GetType();
PropertyInfo[] props = currentType.GetProperties();
bool isSameObject = true;
foreach (var prop in props)
{
var i = prop.GetValue(newObj);
var f = prop.GetValue(oldObj);
if (!object.Equals(i, f))
{
isSameObject = false;
break;
}
}
return isSameObject;
}
Run Code Online (Sandbox Code Playgroud)
从性能角度来看,上述哪种方法更有效?
归档时间: |
|
查看次数: |
8656 次 |
最近记录: |