В базовом предполагаемом сценарии HashSet<T>
следует использовать, когда вы хотите более конкретные операции над множествами для двух коллекций, чем предоставляет LINQ. Методы LINQ, такие как Distinct
, Union
, Intersect
и Except
, в большинстве случаев достаточны, но иногда вам могут потребоваться более мелкие операции, а HashSet<T>
обеспечивает:
UnionWith
IntersectWith
ExceptWith
SymmetricExceptWith
Overlaps
IsSubsetOf
IsProperSubsetOf
IsSupersetOf
IsProperSubsetOf
SetEquals
Другое различие между «перекрывающимися» методами LINQ и HashSet<T>
заключается в том, что LINQ всегда возвращает новый IEnumerable<T>
, а методы HashSet<T>
изменяют исходную коллекцию.