HashSet<T>, tekil (benzersiz) elemanlar saklayan bir koleksiyondur. Aynı elemanı birden fazla kez eklemeye çalışırsanız, ekleme işlemi başarısız olur. Sıralama garantisi yoktur.
Kullanım Alanları
- Tekil kullanıcı ID’lerini saklama
- Yinelenen elemanları temizleme
- Bir veri kümesindeki benzersiz değerleri bulma
HashSet<T> Oluşturma ve Eleman Ekleme/Çıkarma
C#
using System;
using System.Collections.Generic;
public class HashSetOrnegi
{
public static void Main(string[] args)
{
// Boş bir string hashset oluşturma
HashSet<string> benzersizIsimler = new HashSet<string>();
// Eleman ekleme
benzersizIsimler.Add("Ayşe");
benzersizIsimler.Add("Fatma");
benzersizIsimler.Add("Ali");
benzersizIsimler.Add("Ayşe"); // Aynı elemanı tekrar eklemeye çalışmak bir şey değiştirmez
// Eleman çıkarma
benzersizIsimler.Remove("Fatma");
foreach (string isim in benzersizIsimler)
{
Console.WriteLine(isim);
}
}
}Eleman Var mı Kontrolü (Contains())
HashSet<T>’deki bir elemanın var olup olmadığını kontrol edebiliriz.
C#
bool ayseVarMi = benzersizIsimler.Contains("Ayşe"); // True
Console.WriteLine(ayseVarMi);HashSet<T>’in Özellikleri
- Count: HashSet’deki eleman sayısını döndürür.
HashSet<T> ile Döngüler (Foreach)
C#
using System;
using System.Collections.Generic;
class HashSetForeachOrnegi
{
public static void Main()
{
// Boş bir string hashset oluşturma
HashSet<int> hs = new HashSet<int>();
// Eleman ekleme
hs.Add(10);
hs.Add(20);
hs.Add(30);
hs.Add(10);
// Foreach ile elemanları sıralama
Console.WriteLine("Elements in the HashSet: ");
foreach (int number in hs)
Console.WriteLine(number);
}
}HashSet<T>’in Yaygın Kullanım Senaryoları
- Tekil veri kümesi oluşturma: Yinelenen verileri otomatik olarak temizler
- Yinelenen elemanları temizleme: Bir listedeki veya dizideki yinelenen elemanları bulup silmek için kullanılabilir.
Kaynak: https://learn.microsoft.com/tr-tr/dotnet/csharp/tour-of-csharp/tutorials/