断言"结果集合中至少有一个项目与谓词匹配"

D.R*_*.R. 3 c# nunit nunit-2.6

我想声明集合中至少有一项与NUnit的给定谓词相匹配.我已断言项的数量大于0,因此模仿LINQ Any()方法的行为就足够了.

我正在寻找类似的东西:

Assert.That(resultEnumerable, Is.Any.Matching(x => x.Property == "x"));
Run Code Online (Sandbox Code Playgroud)

或者至少为:

Assert.That(resultEnumerable.Select(x => x.Property), Is.Any.EqualTo("x"));
Run Code Online (Sandbox Code Playgroud)

不幸的是,似乎只有一个Is.All约束,没有相应的Is.Any东西 - 我错过了什么?

注意:我不希望可读性低得多:

Assert.That(resultEnumerable.Any(x => x.Property == "x"), Is.True);
Run Code Online (Sandbox Code Playgroud)

Fab*_*ied 6

其中一个怎么样?

Assert.That (resultEnumerable, Has.Some.Property ("Property").EqualTo ("x"));
Assert.That (resultEnumerable, Has.Some.Matches<X> (x => x.Property == "x"));
Run Code Online (Sandbox Code Playgroud)