Yazılımcının Günlüğü | YazilimGunlugu.Com
Arama
Makale Kategorileri
Üye Girişi
Şuanki online üyeler()
Aktif üye bulunmamaktadır.


VB.net de Diziler

Yazar: Fikret AKIN

Kategori: C#.NET & VB.NET

Eklenme Tarihi: 22.05.2007 15:11:09

Diziler hakkında temel bilgi, Bazi dizi özellikleri ve metotlarindan bahsedeceğim.

Dizi degiskenleri, ayni tipte birçok veriyi bir arada tutmayi saglar. Benzer işlemlerde kullanilan degiskenler bir dizi altinda listelenebilir. Örnek olarak kullanicidan alinan Bilgiler String tipinde bir dizi içinde toplanabilir.

Dim Bilgiler(3) As String

Diziler tanimlanirken, ismi verildikten sonra parantez içinde kaç eleman içerecegini belirtmek gerekir. Dizilerin indisleri sifirdan baslar. Örnekteki Bilgiler dizisinin String tipinde 4 tane elemani vardir.

Dizilerin elemanlarina ulasmak için, istenen elemanin indisinin verilmesi gerekir.

Bilgiler(0) = "Ali"

Bilgiler(1) = "Ahmet"

Bilgiler(2) = "Mehmet"

Bilgiler(3) = "Ayse"

MsgBox(Bilgiler(3))

Dizilere tek tek değer atanabildigi gibi, tanimlarken de baslangiç değerleri atanabilir.

Dim Bilgiler() As String = {"Ali","Ahmet","Mehmet","Ayse"}

Diziler tek boyutlu oldugu gibi, birkaç boyutlu diziler de tanimlanabilir. Örnegin;

' Ilk boyutunda 5, Ikinci boyutunda 6 Integer değeri olan

' 2 boyutlu dizi

Dim matris(4,5) As Integer

Burada, dizinin ilk boyutunda 5 tane eleman vardir. Ilk boyuttaki her eleman

için Ikinci boyutta 6 eleman bulunur. Dolayisiyla dizinin toplam 30 elemani vardir.

Bu dizide bir boyut daha olsaydi, o boyutun her elemani için diger boyutlardaki

30 eleman bulunacakti.

Çok boyutlu dizilerin eleman sayilari boyutlarindaki eleman sayilari çarpilarak hesaplanabilir.

Dim dizi(boyut1,boyut2,boyut3,... ,boyutn) As VeriTipi

' Eleman sayisi:

' (boyut1 + 1) * (boyut2 + 1) * ... * (boyutN + 1)

Çok boyutlu dizilere baslangiç değerleri, dizinin boyutu dikkate alinarak verilmelidir. Boyutlardaki elemanlar küme parantezleri ile gruplanmalidir.

' Ilk boyutunda 2, ikinci boyutunda 4 eleman olan

' 2 boyutlu dizi

Dim matris(,) As Integer = {{1, 2, 3, 4}, {5, 6, 7, 8}}

Çok boyutlu dizilerin elemanlarina ulasmak için, her boyut için indis göstermek gerekir.

matris(0, 0) = 1

Dizileri tanimladiktan sonra, eger boyutun büyüklügü (eleman sayisi) yetmiyorsa tekrar boyutlandirmaya ihtiyaç duyariz. Ayni sekilde boyutun büyüklügünü azaltmak için de tekrar boyutlandirma kullanilir.

Dim dizi() As Double = {0.1, 0.2, 0.3}

ReDim dizi(4)

ReDim, yeniden boyutlandir anlamina gelir. Burada dizininin boyutu bes eleman alacak sekilde ayarlanir. Ancak ReDim, dizileri boyutlandirirken değerleri korumaz.

Preserve anahtar kelimesi kullanilmadan tekrar boyutlandirilan diziler, içerdigi verileri kaybeder.

' (3,0) boyutlu olan bir dizi,

' değerlerini koruyarak (3,1) boyutlu yapilir

Dim dizi(,) As Double = {{1.0},{2.0},{3.0},{4.0}}

ReDim Preserve dizi(3, 1)

Bazi Dizi Özellikleri ve Metotlari

Diziler, .NET Framework içinde tanimli Array sinifi ile temsil edilir. Tüm diziler Array sinifinda tanimli özellikleri ve metotlari kullanirlar.

* Length. Dizinin bütün boyutlarindaki toplam eleman sayisini veren özelliktir.

Dim ComboBoxDizisi(19) As ComboBox

MsgBox(ComboBoxDizisi.Length)

'Sonuç = 20

Dim dizi(1, 4, 4, 5, 6) As Integer

MsgBox(dizi.Length())

'Sonuç = 2 * 5 * 5 * 6 * 7 = 2100

* Rank. Dizinin boyut sayisini veren özelliktir.

MsgBox(dizi.Rank)

'Sonuç = 5

* GetLength. Indisi verilen boyutun kaç elemanli oldugunu gösterir. Burada indisin sifirdan basladigina dikkat edilmelidir.

Dim dizi(10, 40, 50, 80, 90) As Integer

MsgBox(dizi2.GetLength(4))

'Sonuç = 91

Clear, Reverse ve IndexOf metotlari Array sinifinda Shared (paylastirilmis) olarak tanimli metotlardir. Islemin yapilacagi dizi parametre olarak verilmelidir.

* Clear. Parametre olarak verilen dizinin, belirtilen indis araligindaki tüm değerlerini temizler. Temizleme işleminde atanan değer, dizi elemanlarinin tiplerine göre degisir. Örnegin Integer tipinde tanimli bir dizinin elemanlari temizlenirse 0 değerini alacaktir. Buna karsin String tipindeki elemanlar “” (bos yazi) değerini alır.

Dim dizi() As Integer = {12, 13, 14, 15} ' 1. indisten baslayarak, 3 elemani temizle

Array.Clear(dizi, 1, 3)

MsgBox(dizi(2))

'Sonuç = 0 ' Dizinin tüm elemanlarini temizler

Array.Clear(dizi, 0, dizi.Length)

* Reverse. Parametre olarak verilen dizinin eleman sirasini tersine çevirir.

Dizinin tüm elemanlarinin veya belirli indis araligindaki elemanlarinin sirasi tersine çevrilebilir.

Dim harfler() As String = {"A", "B", "C"}

Array.Reverse(harfler)

MsgBox(harfler(2))

'Sonuç = A

Dim harfler() As String = {"A", "B", "C"}

Array.Reverse(harfler, 0, 1)

MsgBox(harfler(2))

'Sonuç = C

* IndexOf. Ilk parametrede verilen dizide, ikinci parametrede verilen değeri arar. Aranan değer dizide bulunursa indisi, bulunamazsa -1 döndürür.

Dim notlar() As Single = {78.1, 99.9, 100, 12.2}

Dim maxNot As Single = 100

MsgBox(Array.IndexOf(notlar, maxNot)) ' Aranan maxNot değerinin indisi = 2

Baska makalede görüşmek üzere

Yazar Hakkında Yorum Yok Yorum Yaz Yazara ait diğer Makaleler
Tema
Anket
ASP.NET MVC'yi Projeleriniz de kullandınız mı?


En Çok Okunan Makaleler
En Son Eklenen Makaleler
Soru Merkezinde Bekleyenler
Ana Sayfa | Hakkımızda | Editörler | Yazarlar | RSS RSS | İletişim
Yazılım Günlüğü 2007-2009 © Tüm Hakları Saklıdır.