[What is] the difference between HashSet and List in .NET?
Differences
A List in C# is a collection of items that are stored in order, and can be accessed by an index. Lists allow for duplicate items and have a variety of built-in methods for adding, removing, and searching for items.
A HashSet, on the other hand, is a collection of items that does not have a specific order, and does not allow for duplicate items. It uses a data structure called a hash table to store items, which allows for fast lookups and insertions.
[adinserter block=”6″]
Example
Here is an example of how you might use a List and a HashSet in C#:
// Create a List of integers ListmyList = new List (); myList.Add(1); myList.Add(2); myList.Add(3); myList.Add(3); // duplicate item allowed // Create a HashSet of integers HashSet myHashSet = new HashSet (); myHashSet.Add(1); myHashSet.Add(2); myHashSet.Add(3); myHashSet.Add(3); // duplicate item not allowed
In this example, we created a List of integers and added four items to it. Because Lists allow for duplicate items, the number 3 is added twice. We then created a HashSet of integers and added the same four items to it. Because HashSets do not allow for duplicate items, the second occurrence of the number 3 is not added to the collection.
You could access the items in a List by their index, for example:
//retrieve the first element int firstListElem = myList[0];
You could also use HashSet’s method like Contains to check if an item exist in the HashSet.
//check if the element 2 is in the HashSet bool isInHashSet = myHashSet.Contains(2);
Summary
In summary, Lists are ordered collections that allow duplicate items, while HashSets are unordered collections that do not allow duplicate items. Lists are good when you need a collection that preserves the order of the items and allows duplicates, while HashSets are good when you need a collection that does not preserve order and does not allow duplicates.
Related Posts
-
[How To] find longest strings in array
No Comments | Apr 14, 2020
-
[How To] select and assign to a variable in MSSQL
No Comments | Jan 14, 2023
-
[Question] What is the Main Difference of Float, Double and Decimal Types in C#?
No Comments | Dec 10, 2021
-
[How To] find all duplicates and the number of repetitions
No Comments | Apr 14, 2020