我想知道是否有办法比较两个不同类型的列表。我找到了这个方法:
public AndConstraint<TAssertions> Equal(IEnumerable<T> expectation, Func<T, T, bool> predicate, string because = "", params object[] reasonArgs)
{
this.AssertSubjectEquality<T>((IEnumerable) expectation, predicate, because, reasonArgs);
return new AndConstraint<TAssertions>((TAssertions) this);
}
我正在寻找类似的东西:
public AndConstraint<TAssertions> Equal<U>(IEnumerable<T> expectation, Func<T, U, bool> predicate, string because = "", params object[] reasonArgs)
{
this.AssertSubjectEquality<T,U>((IEnumerable) expectation, predicate, because, reasonArgs);
return new AndConstraint<TAssertions>((TAssertions) this);
}
我尝试制作扩展方法,但方法 AssertSubjectEquality 受到保护,不支持第二种类型。
答案 0 :(得分:1)
如果不复制AssertSubjectEquality
类的AssertCollectionsHaveSameCount
和CollectionAssertions
方法,则无法执行此操作。
相反,我建议您分叉存储库并向我发送一个Pull Request,您可以在其中将这两种方法的通用参数从<T>
更改为<T, U>
,并将您的方法添加到{{1 }}。我会把它变成v3.3的一部分。