public class SecurityMaster : EntityObject
{
public string BondIdentifier { get; set; }
public string Description { get; set; }
public EntityCollection<SecurityMasterSchedules> SecurityMasterSchedules { get; set}
}
public class SecurityMasterSchedules :EntityObject
{
public string BondIdentifier { get; set; }
public decimal rate { get; set; }
public datetime startdate { get; set; }
public datetime endate { get; set; }
}
如何比较对象List list1和List list2?除了方法之外的IEnumerable不适用于复杂对象。
List<SecurityMaster> list1 = new List<SecurityMaster>();
List<SecurityMaster> list2 = new List<SecurityMaster>();
答案 0 :(得分:2)
我猜你有两个IEnumerable<EntityObject>
序列,并且想要知道如何使用Except
,以便在特定条件下将两个EntityObjects
视为相同。我将进一步猜测这些标准包含一个简单的规则(只是为了让我自己更容易提供这个答案):具有相同BondIdentifier
属性的两个项目将被视为相同。
那么,请使用接受Except
的{{1}}的重载:
IEqualityComparer<T>
即使我对标准的猜测是错误的,你仍然可以使用这个答案作为制定你自己的答案的基础。
如果我最初的猜测也是错误的,那么显然这个答案对你来说毫无用处。
答案 1 :(得分:1)
我不确定您的代码与任何内容有什么关系,但这里是您使用Except的方式:
var list1 = new int[] { 1, 2, 3 };
var list2 = new int[] { 1 };
var output = list1.Except(list2).First();
Console.WriteLine(output); // prints "2"