有什么区别``HashSet <t> .IsSubsetOf()`和`HashSet <t> .IsProperSubsetOf()`</t> </t>

时间:2014-07-30 16:22:36

标签: c# .net

这两个方法调用之间有什么区别?

  • HashSet<T>.IsSubsetOf()
  • HashSet<T>.IsProperSubsetOf()

4 个答案:

答案 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的子集,但不再是一个合适的子集。“