![](/img/trans.png)
[英]ASP.NET MVC 3 Compare 2 Lists with Model Objects for duplicates
[英]Compare .NET Objects - Compare 2 lists
我有 2 個對象列表。 在進行比較時如何忽略 Car 的某些屬性? 我已經嘗試過 MembersToIgnore 和 AttributesToIgnore 但它似乎無法識別它並且它仍然返回差異中的這些屬性。 當我只是嘗試比較 2 Cars 時它工作得很好,當我比較列表時如何忽略這些屬性?
List<Car> lst1
List<Car> lst2
CompareLogic compare = new CompareLogic();
ComparisonResult res = compare.Compare(lst1,lst2);
您需要使用自定義比較器。
例如:
public class SpecialCarComparer: BaseTypeComparer
{
public SpecialCarComparer(RootComparer rootComparer) : base(rootComparer)
{
}
public SpecialCarComparer() : this(RootComparerFactory.GetRootComparer())
{
}
public override bool IsTypeMatch(Type type1, Type type2)
{
return type1 == typeof(Car);
}
public override void CompareType(CompareParms parms)
{
Car car1 = parms.Object1 as Car;
Car car2 = parms.Object2 as Car;
if (car1?.SomeCarProperty != car2?.SomeCarProperty || car1?.AnotherCarProperty > 100 || car2?.AnotherCarProperty < 100)
{
AddDifference(parms);
}
}
}
然后使用它:
CompareLogic compareLogic = new CompareLogic();
compareLogic.Config.CustomComparers.Add(new SpecialCarComparer());
ComparisonResult result = compareLogic.Compare(obj1, obj2);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.