断言 "at least one item in the result collection matches predicate"

Assert "at least one item in the result collection matches predicate"

我想断言集合中至少有一项与 NUnit 的给定谓词相匹配。我已经断言项目数大于 0,因此足以模仿 LINQ 的 Any() 方法的行为。

我正在寻找类似的东西:

Assert.That(resultEnumerable, Is.Any.Matching(x => x.Property == "x"));

或至少:

Assert.That(resultEnumerable.Select(x => x.Property), Is.Any.EqualTo("x"));

不幸的是,似乎只有 Is.All 约束,没有等效的 Is.Any - 我错过了什么?

注意:我不希望可读性太差:

Assert.That(resultEnumerable.Any(x => x.Property == "x"), Is.True);

我发现:

Assert.That (resultEnumerable.Select (x => x.Property), Has.Some.EqualTo ("x"));

仍然希望我不再需要 Select() 的解决方案。

其中之一怎么样?

Assert.That (resultEnumerable, Has.Some.Property ("Property").EqualTo ("x"));
Assert.That (resultEnumerable, Has.Some.Matches<X> (x => x.Property == "x"));