又一个列表比较问题.
List<MyType> list1;
List<MyType> list2;
Run Code Online (Sandbox Code Playgroud)
我需要检查它们是否具有相同的元素,无论它们在列表中的位置如何.每个MyType对象可能在列表中出现多次.是否有内置函数可以检查这个?如果我保证每个元素只在列表中出现一次怎么办?
编辑:伙计们感谢答案,但我忘了添加一些东西,每个元素的出现次数在两个列表上都应该相同.
我想比较两个嵌套对象列表。如果父对象Id不同和/或任何子对象Id或Baz属性不同,我想认为它们已更改。
我已经实现了我自己的版本Equals和GetHashCode以下版本,但尽管使用了我自己的 equalcomparer,Except()仍然会产生结果,而我希望对象是相等的。
var foo1 = new Foo
{
Id = 1,
Bars = new List<Bar>
{
new Bar
{
Id = 1,
Baz = 1.5
},
new Bar
{
Id = 1,
Baz = 1.5
}
}
};
var foo2 = new Foo
{
Id = 1,
Bars = new List<Bar>
{
new Bar
{
Id = 1,
Baz = 1.5
},
new Bar
{
Id = …Run Code Online (Sandbox Code Playgroud) 我使用以下代码来检查两个列表是否相等.
var a = ints1.All(ints2.Contains) && ints1.Count == ints2.Count;
Run Code Online (Sandbox Code Playgroud)
我唯一不明白的是ints2.Contains工作方式.据我所知,Contains()是一种方法并采取参数.正如我们在这里看到的,Contains没有采取任何参数.注意 - ints1并且ints2是两个不同的列表.