C# (C Sharp) Ders 10 – Koleksiyonlar (Collections) – HashSet<T>

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/