C# – Hashtable Sınıfı

28 Aralık 1992 yılında Erzurum’da doğdum. İlköğretim ve ortaöğretimimi 2000-2012 yıllarında Kocaeli'de; yükseköğretimimi de 2013-2018 yıllarında Sakarya üniversitesi bilgisayar mühendisliği bölümünde tamamladım. Şu an Intertech'te yazılım uzmanı olarak çalışmaktayım.

Bir cevap yazın

Comment as a guest.

  1. Hashtable Sınıfını anlamamda çok yardımcı oldunuz, teşekkürler.

  2. İyi günler. Konuyu çok kısa ve öz bir şekilde anlattığınız için teşekkür ederim. İzninizle bir soru sormak istiyorum. Tekli isminde bir hashtable kullanıyorum ve hashtable’daki value değerleri limit değerine eşit olan değerleri ve anahtarları silmek istiyorum. Bunun için aşağıdaki gibi bir kod yazdım fakat şu şekilde bir hata alıyorum: “Koleksiyon değiştirildi; sabit listesi işlemi yürütülemeyebilir.” Bu problemi nasıl çözebilirim yardımcı olursanız sevinirim.
    Hashtable Tekli =new Hashtable();
    int limit = 1;
    foreach (object Anahtar in (Tekli.Keys))
    {
    if(Convert.ToInt32(Tekli[Anahtar]) == limit)
    {
    Tekli.Remove(Anahtar);
    }
    else
    {
    MessageBox.Show(Convert.ToString(Anahtar + “-” + Tekli[Anahtar]));
    }
    }

    1. Merhaba,
      foreach ile Tekli koleksiyonunun elemanlarına erişirken, aynı zamanda koleksiyondaki elemanları silmeye çalıştığınız için program hata vermektedir.

      Çözüm

      Hashtable Tekli = new Hashtable();
      Tekli.Add(5, 1);
      Tekli.Add(20, 10);
      Tekli.Add(4, 1);
      Tekli.Add(10, 2);
      Tekli.Add(18, 4);
      Tekli.Add(17, 1);
      
      int limit = 1;
      Hashtable temp = (Hashtable)Tekli.Clone();
      foreach (object anahtar in temp.Keys)
      {
          if (Convert.ToInt32(temp[anahtar]) == limit)
          {
              Tekli.Remove(anahtar);
          }
          else
          {
              Console.WriteLine(anahtar + "-" + temp[anahtar]);
          }
      }
               
      

      Tekli koleksiyonunun kopyasını alıp, foreach ile kopya koleksiyon üzerinde dolaşırken, silinmesi gereken elemanları Tekli koleksiyonu üzerinden silerek istediğiniz sonucu elde edebilirsiniz.

Sliding Sidebar