C# Hashtable Genel Kullanımı

19 August, 2019

undefined

Merhaba arkadaşlar bugün sizlerle using System.Collections; kütüphanesinin altındaki Hashtable sınıfını inceleyeceğiz.

  • Add() Metodu : parametre olarak anahtar kelimesi ve karşılık gelen değerleri yazarak değer oluşturduğumuz nesneye atama işlemini yapıyoruz.
using System.Collections;
namespace HashTableGenelKullanimi
{
    class Program
    {
        static void Main(string[] args)
        {
            Hashtable H1 = new Hashtable(); //Nesne oluşturduk
            H1.Add("Car", "Araba"); //Add methodu ile key ve değer eklemesi yaptık
            H1.Add("House", "Ev");
            H1.Add("Cars", "Arabalar");
        }
    }
}

Evet gördüğünüz gibi bir key değerimiz var ve ona karşılık gelen değerlerimiz var. Peki tek bir key değerine 1 den fazla değer ataması yapabilir miyiz? yaparsak nasıl sonuçlarla karşılaşırız inceleyelim...

using System.Collections;
namespace HashTableGenelKullanimi
{
    class Program
    {
        static void Main(string[] args)
        {
            Hashtable H1 = new Hashtable();
            H1.Add("Car", "Araba");
            H1.Add("House", "Ev");
            H1.Add("Cars", "Arabalar");
            H1.Add("House", "konut");
        }
    }
}

Yukarıdaki kodumuzu incelediğimizde "House" anahtar kelimesine 1 den fazla değer ataması yapmışız. Bu durumda tabii ki yazdığımız kod hata verecektir. Hata mesajı  olarak bize System.ArgumentException: fırlatacaktır.

  • Contains() Metodu : Contains metodu ile key değerlerini karşılaştırma işlemine tabi tutarız ve ekrana bool veri tipi döndürür true ya da false olarak
using System.Collections;
namespace HashTableGenelKullanimi
{
    class Program
    {
        static void Main(string[] args)
        {
            Hashtable H1 = new Hashtable();
            H1.Add("Car", "Araba");
            H1.Add("House", "Ev");
            H1.Add("Cars", "Arabalar");


            bool Kontrol1 = H1.Contains("House");
            bool Kontrol2 = H1.Contains("Door");

            bool Kontrol3 = H1.ContainsKey("House");
            bool Kontrol4 = H1.ContainsValue("Araba");
        }
    }
}

Yukarıdaki kodlarımıza break point aracılığı ile adım adım takip ettiğimizde Kontrol1 değeri haricinde hepsi true döndürür.

Peki Kontrol4 neden true döndürdü der iseniz bunun sebebi arkadaşlar ContainsValue metodu key'e karşılık gelen değeri kıyaslar

  • Remove() Metodu
  • Count() Metodu
  • Clear() Metodu
  • Key Değeri güncelleme

Bu metodları'da ekleyip aşağıdaki kodumuzda detaylı inceleyelim.

using System.Collections;
namespace HashTableGenelKullanimi
{
    class Program
    {
        static void Main(string[] args)
        {
            Hashtable H1 = new Hashtable();
            H1.Add("Car", "Araba");
            H1.Add("House", "Ev");
            H1.Add("Cars", "Arabalar");


            bool Kontrol1 = H1.Contains("House");
            bool Kontrol2 = H1.Contains("Door");

            bool Kontrol3 = H1.ContainsKey("House");
            bool Kontrol4 = H1.ContainsValue("Araba");

            H1["House"] = "Villa"; //House key değerimizin karşılığını Villa ile değiştirdik.
            H1.Remove("Cars"); //Cars key değerimizi bu satırda sildik.
            int koleksiyonIcindekiDeger = H1.Count;
            H1.Clear(); //Koleksiyon içerisindeki tüm detayları temizleriz.
        }
    }
}

 

C# ArrayList Class example

18 August, 2019
undefined
Örnekler docs.microsoft.com resmi siteden tr çevirilmiş halidir.

Aşağıdaki örnek, bir ArrayList öğesinin nasıl oluşturulduğunu ve başlatılacağını ve değerlerinin nasıl görüntüleneceğini gösterir.

using System;
using System.Collections;
public class SamplesArrayList  {

   public static void Main()  {

      // Yeni bir ArrayList oluşturur ve başlatır.
      ArrayList myAL = new ArrayList();
      myAL.Add("Hello");
      myAL.Add("World");
      myAL.Add("!");

      // ArrayList'in özelliklerini ve değerlerini görüntüler.
      Console.WriteLine( "myAL" );
      Console.WriteLine( "    Count:    {0}", myAL.Count );
      Console.WriteLine( "    Capacity: {0}", myAL.Capacity );
      Console.Write( "    Values:" );
      PrintValues( myAL );
   }

   public static void PrintValues( IEnumerable myList )  {
      foreach ( Object obj in myList )
         Console.Write( "   {0}", obj );
      Console.WriteLine();
   }

}


/* 
Bu kod aşağıdakine benzer bir çıktı üretir:

myAL
    Count:    3
    Capacity: 4
    Values:   Hello   World   !

*/

önemli.!

Yeni geliştirme için ArrayList sınıfını kullanmanızı önermiyoruz. Bunun yerine, genel List<T> sınıfını kullanmanızı öneririz. ArrayList Sınıfı, heterojen nesne koleksiyonlarını tutmak için tasarlanmıştır. Ancak, her zaman en iyi performansı sunmaz. Bunun yerine şunları öneririz:

  • Heterojen nesneler List<Object> koleksiyonu için (içinde C#) veya List(Of Object) (Visual Basic) yazın.
  • Homojen nesnelerin bir koleksiyonu için List<T> sınıfını kullanın.

Bu sınıfların göreli performansına ilişkin List<T> bir tartışma için başvuru konusundaki performans konularına göz atın. Genel olmayan koleksiyon türleri yerine genel bilgi için bkz. genel bilgiler için GitHub 'da genel olmayan koleksiyonlara kullanılmamalıdır .

 

ArrayList Sıralanabilecek garanti edilmez. ' In sıralanmasını gerektiren ArrayList BinarySearch Sort işlemleriArrayList (gibi) gerçekleştirmeden önce metodunu çağırarak öğesini silmelisiniz. Yeni öğeler eklendikçe otomatik olarak sıralanan bir koleksiyonu sürdürmek için SortedSet<T> sınıfını kullanabilirsiniz.

Öğesinin ArrayList kapasitesi, ArrayList tutabileceğiniz öğe sayısıdır. Öğesine öğeler eklendikçe ArrayList, yeniden tahsisatın yapılması için kapasite otomatik olarak artar. Kapasite, çağırarak TrimToSize veya Capacity özelliği açıkça ayarlanarak azaltılabilir.

Yalnızca .NET Framework: Çok büyük ArrayList nesneler için, <gcAllowVeryLargeObjects> yapılandırma öğesinin enabled özniteliğini çalışma zamanı ortamında olarak true ayarlayarak 64 bit sistemdeki en fazla 2.000.000.000 öğeye kapasiteyi artırabilirsiniz.

Bu koleksiyondaki öğelere bir tamsayı dizin kullanılarak erişilebilir. Bu koleksiyondaki dizinler sıfır tabanlıdır.

Koleksiyon geçerli bir değer olarak kabul eder null. ArrayList Ayrıca yinelenen öğelere izin verir.

Bir ArrayList koleksiyonda öğe olarak çok boyutlu diziler kullanılması desteklenmez.

 

 

 

C# foreach ?

16 August, 2019

undefined

Merhaba arkadaşlar bugün sizlerle foreach metodunu kullanacağız ve bizlere nasıl tepki verdiğini aşama aşama izleyip ona göre işlem adımlarımızı belirleyeceğiz.

Şimdi bir önceki bloğumdaki kodları foreach ile oluşturduğum dizileri döndüreceğim.

string[] ogranciisimListesi = new string[5];

            ogranciisimListesi[0] = "Ertan AYYILDIZ";
            ogranciisimListesi[1] = "KTU Bil. müh.";
            ogranciisimListesi[2] = "Gumushane";
            ogranciisimListesi[3] = "Istanbul";
            ogranciisimListesi[4] = "GOP";

            foreach (string item in ogranciisimListesi)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();
        }

şimdi arkadaşlar yukarıdaki kodlara baktığınızda bir string tipinde öğrenci isim listemiz var. ve bunları bir

foreach ile for döngüsü gibi ogrenci listesinin içerisini 0. index değerinden son index değerine kadar bizler için gezecek

ve her adımda bizler Console.WriteLine(item); işlemimiz ile beraber bu adımları console ekranında göstereceğiz. 

console:

Ertan AYYILDIZ
KTU Bil. müh.
Gumushane
Istanbul
GOP

 

C# Diziler(Arrays)

16 August, 2019

undefined

Programlama ortamında hangi dilde diziler ile işlem yapmak istiyorsanız oluşturacağınız her dizinin boyutunu oluşturmaya başladığımızda başlangıç olarak index değerleri 0 dan başlar ve istediğimiz index'e kadar bize bellekte alan teşhis eder. Şimdi örnek kodlar ile gösterelim.

örn kod;

static void Main(string[] args)
        {
            string[] ogranciısimListesi = new string[5];
        }

Yukarıdaki oluşturduğumuz dizide bellekte ekrana 5 adet boş alan getirdi bizim için 0.1.2.3.4 index değerlerine şimdi bir değer girelim ve bize ayrılan bellekleri dolduralım. String ifadeler ile beraber.

static void Main(string[] args)
        {
            string[] ogranciısimListesi = new string[5];

            ogranciısimListesi[0] = "Ertan AYYILDIZ";
            ogranciısimListesi[1] = "KTU Bil. müh.";
            ogranciısimListesi[2] = "Gumushane";
            ogranciısimListesi[3] = "Istanbul";
            ogranciısimListesi[4] = "GOP";
        }

şimdi arkadaşlar şimdi dizimizdeki 0. index'i ekranda gösterelim.

  static void Main(string[] args)
        {
            string[] ogranciısimListesi = new string[5];

            ogranciısimListesi[0] = "Ertan AYYILDIZ";
            ogranciısimListesi[1] = "KTU Bil. müh.";
            ogranciısimListesi[2] = "Gumushane";
            ogranciısimListesi[3] = "Istanbul";
            ogranciısimListesi[4] = "GOP";

            Console.WriteLine(ogranciısimListesi[0]);
        }

Ekran Çıktısı :

Ertan AYYILDIZ

C# region nedir ? kullanımı ?

15 August, 2019

undefined

Tekrardan Merhaba arkadaşlar bugün sizlerle region nedir ? Ne işe yarar ? nerelerde kullanırız ? gibi soruları cevaplayacağız

Region: kısaca bahsetmek gerekirse kodlarımızı bloglama işlerine yarıyor diyebilriiz. Peki neden ihtiyaç duyarız.?

bazen kodlarımız üst üste geldiğinde büyüdükçe karmaşık hal almaya başlıyor. Ve kod verimimizi düşüyor. Bunların önüne geçebilmek için 

region anahtar kelimesi ile bunları kümeleriz. 

Şimdi sizlerle bir önceki bloğumda kullandığım kodu kümeleyip kullanımını göreceğiz.

static void Main(string[] args)
        {
            #region Parse - Convert FARK
            string text1 = "61";
            string text2 = null;

            int sayi1 = -1;
            int sayi2 = -1;

            // convert kullanımı

            sayi1 = Convert.ToInt32(text1);
            sayi1 = Convert.ToInt32(text2);
            
            #endregion
        }

peki şimdi kümelediğimiz kodu #region yazan satırın sol tarafında - işareti ile aşağıdaki görünümü elde edelim.

 static void Main(string[] args)
        {
            Parse - Convert FARK
        }

Evet arkadaşlar böylelikle istediğimiz isimleri vererek kutuplaştırdığımız kodları daha sade ve anlaşılır dil haline getirebiliriz.

Teşekkürler.

 

 

Newer posts → Home ← Older posts