我需要確定兩個EntityCollections是否相等。我有代碼我認爲會做到這一點,但我想知道是否有更有效的算法?請注意,EntityCollections每個可能少於10個元素。有沒有更有效的方法來確定兩個EntityCollections是否包含相同的元素?
private static bool isEquivalent(
EntityCollection<MyClassDetails> myClassDetails1,
EntityCollection<MyClassDetails> myClassDetails2)
{
var myClassComparer = new MyClassComparer();
return
myClassDetails1.All(
myClassDetail1 =>
myClassDetails2.Contains(
myClassDetail1, myClassComparer));
}
class MyClassComparer : IEqualityComparer<MyClassDetails>
{
public bool Equals(MyClassDetails details1, MyClassDetails details2)
{
return details1.DetailID == details2.DetailID;
}
public int GetHashCode(MyClassDetails obj)
{
return obj.GetHashCode();
}
}
這不會確定兩個集合的交集是否爲空? – dlev
是的,我相信它。 – Don