Aqui está outra solução sem usar o HashSet
.
var items = new List<string>() { "one", "one", "two", "one", "two", "zero" };
var uniqueItems = items.Where((item, index) => items.IndexOf(item) == index);
Foi adotado a partir deste tópico: javascript - Valores únicos em uma matriz
Teste:
using FluentAssertions;
uniqueItems.Count().Should().Be(3);
uniqueItems.Should().BeEquivalentTo("one", "two", "zero");
Teste de desempenho para List
, HashSet
e SortedSet
. 1 milhão de iterações:
List: 564 ms
HashSet: 487 ms
SortedSet: 1932 ms
Teste o código-fonte (essência)
HashSet
perderá a ordem dos itens. Um recurso que aList
fornece.