是否有任何.net的库/框架可以使用两个相同类型的对象并使用所有属性的反射匹配值?
我必须比较具有2个Nullable DateTime属性的两个对象,并且代码看起来很丑陋:
private bool SameValues(ExpiryDates ExpiryDates1, ExpiryDates ExpiryDates2)
{
//Assume they are the same value and then look for differences
bool result = true;
if (ExpiryDates1.PSL_ExpiryDate.HasValue != ExpiryDates2.PSL_ExpiryDate.HasValue)
{
result = false;
}
if (ExpiryDates1.MNL_ExpiryDate.HasValue != ExpiryDates2.MNL_ExpiryDate.HasValue)
{
result = false;
}
if ((ExpiryDates1.MNL_ExpiryDate != null) && (ExpiryDates2.MNL_ExpiryDate != null))
if (ExpiryDates1.MNL_ExpiryDate.Value != ExpiryDates2.MNL_ExpiryDate.Value)
result = false;
if ((ExpiryDates1.PSL_ExpiryDate != null) && (ExpiryDates2.PSL_ExpiryDate != null))
if (ExpiryDates1.PSL_ExpiryDate.Value != ExpiryDates2.PSL_ExpiryDate.Value)
result = false;
return result;
}
答案 0 :(得分:1)
根据我的知识,没有可用的库,但在.NEt框架中,为了比较相同类型的对象,我们有可以使用的IComparare接口,并在两个相同类型的对象之间进行比较。
public class BoxComp : IComparer<Box>
{
// Compares by Height, Length, and Width.
public int Compare(Box x, Box y)
{
///you code to do comparison
}
}
你可以把它变成通用的。
你可以检查一下:Compare .NET Objects但我建议你去比较拼版,因为你不需要比较两个对象的日期时间。