Nie jestem pewien, czy liczy się to jako dobra odpowiedź, ale w obliczu potrzeby posiadania unikalnego zestawu, który utrzymuje kolejność reklam, poszedłem na kompromis z HashSet i List obok siebie. W takim przypadku za każdym razem, gdy dodajesz do zestawu, wykonaj następujące czynności:
if(hashSet.Add(item))
orderList.Add(item);
Podczas wyjmowania elementów pamiętaj, aby usunąć je z obu. Tak więc, dopóki możesz być pewien, że nic innego nie dodało pozycji do listy, będziesz mieć unikalny zestaw uporządkowany przez wstawienie!
HashSet
straci kolejność elementów. Funkcja aList
zapewnia.