C# programlama dilinde dizileri (Array), ArrayList'i ve List'i temel olarak gördükten sonra bu üç sınıf arasındaki farkları ve hangi durumlarda hangisini seçmenin faydalı olacağına dair bir başlık açarak geceye başlamak istedim.
- Diziler, boyutları başından tanımlı olan ve aynı veri tipinde değerler saklayabilirler. Dolayısıyla runtime esnasında dizilerin boyutunun ya da içerisindeki elemanların türünün değiştirilmesi mümkün değildir.
int[] sayilar = new int[] {5, 10, 15, 20};
- List, System.Collections.Generic namespace'i altında yer alan bir sınıftır ve içerisinde yer alan elemanların yönetimi (sıralanması, arama yapılması, düzenlenmesi vb.) ile ilgili bir çok hazır metodu vardır. List içerisinde saklanacak değerler yine aynı veri tipinde olmalıdır ve tanımlama esnasında seçilen veri tipinde değerler eklenmelidir. Ancak List'lerin boyutları sabit değildir ve runtime esnasında eleman eklenebilir ya da çıkartılabilir.
List<int> sayilar = new List<int> {5, 10, 15, 20};
- ArrayList, System.Collections namespace'i altında yer alan bir sınıftır ve en önemli özelliklerinden birisi, farklı veri tiplerinden elemanlar saklayabilmesidir. Boyut olarak yine esnektir ve Add() metodu ile içerisine eleman eklenebileceği gibi Remove() metodu ile de içerisindeki elemanlar silinebilir.
var sayilar = new ArrayList() {
1, "2", "üç", true, 'b'
};
Bu şekilde bakıldığında, içerisinde her tip veriyi saklayabildiği için ArrayList kullanmak daha mantıklı gibi görünse de farklı veri tiplerini içeren koleksiyonlarda işlem yapmak, runtime esnasında hatalar almanıza yol açacağı için tavsiye edilmeyen bir durumdur. Örneğin foreach döngüsü içerisinde her ArrayList elemanının karesini almak istediğinizde sayısal olmayan veri tipleri varsa hata almış olursunuz. Dolayısıyla program içerisinde tutacağınız verilerin türüne göre istediğiniz sınıfı tercih edebilirsiniz, ama tüm verilerin aynı tipte olması olası hatalar almanızı engellemiş olacaktır.
Önceki yazılarımdan bazı ilgili olan başlıklar için;
bkz: C# ile Dizi Tanımlamak (Array)
bkz: C# ArrayList Kullanımı ve Örnekleri
bkz: C# ile List Kullanımı ve Örnekleri
bkz: C# ile ArrayList Elemanlarını Yazdırmak
bkz: C# ArrayList elemanlarını küçükten büyüğe sıralamak
bkz: C# ile foreach döngüsü kullanımı ve örnekleri