HashSet<T> Class
Represents a set of values.
Assembly: System.Core (in System.Core.dll)
Note:
|
|---|
|
The HostProtectionAttribute attribute applied to this type or member has the following Resources property value: MayLeakOnAbort. The HostProtectionAttribute does not affect desktop applications (which are typically started by double-clicking an icon, typing a command, or entering a URL in a browser). For more information, see the HostProtectionAttribute class or SQL Server Programming and Host Protection Attributes. |
The HashSet<T> class provides high performance set operations. A set is a collection that contains no duplicate elements, and whose elements are in no particular order.
The capacity of a HashSet<T> object is the number of elements that the object can hold. A HashSet<T> object's capacity automatically increases as elements are added to the object.
Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Seems like the HashSet<T> class does not order the elements by their hash code (as most people could expect). For example see this code:
ISet<string> set = new HashSet<string> { "C#", "Java", "C++", "JavaScript", "PHP", "SQL", "Perl", "Ruby" };
foreach (var element in set)
{
Console.Write("{0} ", element);
}
// Result: C# Java C++ JavaScript PHP SQL Perl Ruby
Seems like the elements preserve their order of addition, like List<T>.
The documentation says that "elements are in no particular order", but it is not 100% correct.
Why this behavior is needed?
--The doc says "the elements are in no particular order", meaning that the runtime does not guarantee an order and that your code should not rely on a particular ordering, as that behavior could change with any update. (djangow, MSDG)
- 4/9/2010
- Svetlin Nakov
- 11/1/2010
- djangow
- 1/12/2010
- BDill
Might want to run a spell checker.
- 11/28/2009
- A.n.t
- 11/28/2009
- Thomas Lee
Note: