这两个方法调用之间有什么区别?
HashSet<T>.IsSubsetOf()
HashSet<T>.IsProperSubsetOf()
答案 0 :(得分:14)
请参阅here
如果当前集合是其他集合的正确子集,则其他集合必须至少具有当前集合不具有的一个元素。
vs here
如果other包含与当前集相同的元素,则当前集仍被视为其他集的子集。
差异为set.IsSubsetOf(set) == true
,而set.IsProperSubsetOf(set) == false
答案 1 :(得分:4)
这来自集合理论:
S = {e,s,t}, T = {e,s,t}
T是S的一个子集,因为T中的每个元素也在S中。但它不是一个合适的子集,因为正确的子集(如普通子集)也包含超集的元素,但它也具有 less 元素比初始集合。例如:
S = {e,s,t}, T = {e,t}
T是S的适当子集。
答案 2 :(得分:1)
IsProperSubsetOf不能包含整个HashSet。只是它的一部分。 IsSubsetOf可以包含任何子集,包括完整的HashSet。
答案 3 :(得分:0)
来自“示例”部分found here:
“以下示例创建两个不同的HashSet对象并将它们相互比较。在此示例中,lowNumbers既是allNumbers的子集又是适当的子集,直到使用IntersectWith方法修改allNumbers只包含值两个集合都存在。一旦allNumbers和lowNumbers相同,lowNumbers仍然是allNumbers的子集,但不再是一个合适的子集。“