且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

创建的IEqualityComparer<&IEnumerable的LT; T>>

更新时间:2021-09-08 07:24:53

我只是验证了该工作正常xUnit.net 1.9.2:

I just verified that this works fine with xUnit.net 1.9.2:

public class MyClass
{
    public int ID { get; set; }
    public string Name { get; set; }
}

public class MyClassComparer : IEqualityComparer<MyClass>
{
    public bool Equals(MyClass x, MyClass y)
    {
        return x.ID == y.ID;
    }

    public int GetHashCode(MyClass obj)
    {
        return obj.ID.GetHashCode();
    }
}

public class ExampleTest
{
    [Fact]
    public void TestForEquality()
    {
        var obj1 = new MyClass { ID = 42, Name = "Brad" };
        var obj2 = new MyClass { ID = 42, Name = "Joe" };

        Assert.Equal(new[] { obj1 }, new[] { obj2 }, new MyClassComparer());
    }
}



所以,我不是100%清楚为什么你需要额外的比较器。只是单一的比较器就足够了。

So I'm not 100% clear why you need the extra comparer. Just the single comparer should be sufficient.