C# FluentAssertions:应包含序列的每个元素

C# FluentAssertions:应包含序列的每个元素,c#,unit-testing,fluent-assertions,C#,Unit Testing,Fluent Assertions,我有一个列表,每个元素也应该出现在另一个列表中,但不一定以相同的顺序出现 我可能可以用foreach做断言,就像这样 Assert.IsTrue(list1.Count == list2.Count); foreach(var element in list1) { Assert.IsTrue(list2.Count(e => e.Equals(element)) == 1); } 我正在寻找一种使用fluentAssertions的方法。这些元素不一定相等,而是相等的。可能是这

我有一个列表,每个元素也应该出现在另一个列表中,但不一定以相同的顺序出现

我可能可以用foreach做断言,就像这样

Assert.IsTrue(list1.Count == list2.Count);
foreach(var element in list1)
{
    Assert.IsTrue(list2.Count(e => e.Equals(element)) == 1);
}
我正在寻找一种使用fluentAssertions的方法。这些元素不一定相等,而是相等的。可能是这样的

list1.ShouldAll().BeEquivalentInAnyOrderTo(list2);
但是我找不到任何东西能那么容易地解决我的问题

使用FluentAssertions检查两个列表是否以任何顺序包含等效元素的最简单方法是什么?

您马上就可以:

list1.Should().BeEquivalentTo(list2);
应该有用。
From:

列表1.shouldbeeeEquivalento(expectedList)
-将在不严格限制订单的情况下检查等效性。为了获得更大的扩展性,您可以使用第二个参数尝试使用
list1。shouldlbeeEquivalentto(list2)
;成功了!我不知道为什么我觉得这会考虑订单。我将不得不改变使用这一行的其他单元测试,因为保持顺序实际上很重要。。。