0

我想知道是否有办法比较两个不同类型的列表。我找到了这个方法:

        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是受保护的,不支持第二种类型。

4

1 回答 1

1

如果不复制该类的AssertSubjectEqualityAssertCollectionsHaveSameCount方法,则无法做到这一点。CollectionAssertions

相反,我建议你 fork 存储库并向我发送一个 Pull Request,在其中你将这两个方法的通用参数从更改<T><T, U>并将你的方法添加到GenericCollectionAssertions. 我将使其成为 v3.3 的一部分。

于 2014-09-19T06:40:41.200 回答