是否总是可忽略的 except 和相交操作的顺序
本文关键字:操作 顺序 except 可忽略 是否 | 更新日期: 2023-09-27 18:28:59
对我来说,似乎任何操作都像
var list = new List<int>();
// list.Add some elements...
list.Except(anotherList).Intersect(yetAnotherList)
这总是像:
list.Intersect(yetAnotherList).Except(anotherList)
我不是100%确定。
感谢您的帮助。
从纯粹的集合论的角度来看,顺序在这里并不重要。在这两个步骤中,您只是从list
中删除元素。如果元素在anotherList
中或不在yetAnotherList
中,则会从列表中删除该元素。是否切换上一句中 »或 « 的操作数都没有区别。
为了说明这一点,让我们构造三个列表(此处为集合,因为这些是集合操作(:
list = { A, B, C, D }
anotherList = { A, B, E, F }
yetAnotherList = { A, C, E, G }
这里的每个集合都有一个元素在所有三个集合中(A
(,一个元素在其他集合中,还有一个元素只在该集合中而不在其他集合中。因此,我们在这里涵盖了交集和集合差值的所有可能情况。
list.Except(anotherList)
产生{ C, D }
.与yetAnotherList
相交会产生{ C }
.
list.Intersect(yetAnotherList)
产生{ A, C }
.除了anotherList
再次产生{ C }
。