比较C#.NET Core中的两个数据模型的最佳方式



我有两个属性相同的数据模型,我从两个web API响应中获取数据。我正在尝试比较两个具有值的模型,如果发现数据差异,我需要进行比较,如果发现差异,则分配给数据模型的新实例或最新的现有实例。

例如:UserProfile1包含最新数据。

比较两个数据模型(不是列表(的最佳方法是什么?目前,我使用if-else方法,其中对于单个数据模型,我有25个属性。

Icomparer有可能吗?

UserProfile userProfile1 = new UserProfile()
{
Name = "Satya",
AddressLine1 = "RailwayRoad",
AddressLine2 = "MG Street",
AddressLine3 = "India"
};
UserProfile userProfile2 = new UserProfile()
{
Name = "Satya",
AddressLine1 = "RailwayRoad",
AddressLine2 = "Metro Street",
AddressLine3 = "India"
};
if(userProfile1.Equals(userProfile2))
{
// I tried like this 
}
bool isUserDetailsDiff = false;
if (!string.Equals(userProfile1.Name, userProfile2.Name))
{
isUserDetailsDiff = true;
userProfile1.Name = userProfile2.Name;
}
else if (!string.Equals(userProfile1.AddressLine1, userProfile2.AddressLine2))
{
isUserDetailsDiff = true;
userProfile1.AddressLine1 = userProfile2.AddressLine2;
}

您可以将UserProfile声明为记录,并可以通过执行此操作对它们进行比较userProfile1==userProfile2

public record UserProfile(
string Name,
string AddressLine1,
string AddressLine2,
string AddressLine3
);
public class Example
{
public void ExampleMethod()
{
var userProfile1 = new UserProfile("Satya", "RailwayRoad", "MG Street", "India");
var userProfile2 = new UserProfile("Satya", "RailwayRoad", "MG Street", "India");
if (userProfile1 == userProfile2)
{
//...
}
}
}

最新更新