Bu yapı System.Collection.Generic isim alanı içerinde bulunan List<T> ‘e alternatif olabilecek bir koleksiyon özelliği taşımaktadır.
HashSet verilere erişimde oldukca hızlı olmakla beraber List<T> den farklı olarak aynı veriyi bir dahaki sefere koleksiyon içine koymama özelliğine sahip bir koleksiyon olarak geliştirilmiş.
Örneğin basit bir ekleme işlemi yapacak olursak;
1 2 3 4 5 6 7 8 9 10 11 12 13 |
//HashSetimizi tanımlıyoruz. //HashSet 4 farklı şekilde kurulabilir. HashSet<string> hNesneler = new HashSet<string>(); //String verileri koleksiyona ekliyoruz. hNesneler.Add("Kitap"); hNesneler.Add("Kalem"); hNesneler.Add("Araba"); //Eleman Sayısını gösteriyoruz. MessageBox.Show(hNesneler.Count.ToString()); //Bulunan bir elemanı eklemeyi deniyoruz. hNesneler.Add("Kitap"); //Tekrar eleman sayısını gösteriyoruz. MessageBox.Show(hNesneler.Count.ToString()); |
Her iki mesajda da “3” gösterilecektir.
Başka bir fark olarak Add metodu bool türünden veri döndürüyor.
HashSet ile ilgili başka bir örnek;
1 2 3 4 5 6 7 8 |
//String dizisi tanımlıyoruz. string[] Nesneler = { "Kitap", "Kalem", "Araba", "Kalem", "Kitaplık" }; //HashSetimizi Nesneler string dizisiyle kuruyoruz. HashSet<string> hNesneler = new HashSet<string>(Nesneler); //Diğer örneğimizden farklı olarak burda da HashSetimizdeki verilerin tekrar dizi haline getirilmesini sağlıyoruz. string[] GelenNesne = hNesneler.ToArray(); //Elde edilen dizideki elemanlarımızı mesaj olarak gösteriyoruz. MessageBox.Show(String.Join(",", GelenNesne)); |
Burda ise string dizisiyle kurulan HashSet in aynı elemanları eklemeyip sadece “Kitap,Kalem,Araba,Kitaplık” mesaj olarak gösterilecektir.