Getting unique items from a list [duplicate]
What is the fastest / most efficient way of getting all the distinct items from a list?
I have a List<string>
that possibly has multiple repeating items in it and only want the unique values within the list.
Solution 1:
You can use the Distinct
method to return an IEnumerable<T>
of distinct items:
var uniqueItems = yourList.Distinct();
And if you need the sequence of unique items returned as a List<T>
, you can add a call to ToList
:
var uniqueItemsList = yourList.Distinct().ToList();
Solution 2:
Use a HashSet<T>
. For example:
var items = "A B A D A C".Split(' ');
var unique_items = new HashSet<string>(items);
foreach (string s in unique_items)
Console.WriteLine(s);
prints
A B D C
Solution 3:
You can use Distinct extension method from LINQ