27 Ekim 2012 Cumartesi

TextBox’ın Özellikleri


Text Özelliği: textBox’ta bulunan metinle ilgili işlemlerde kullanılır.
Örnek:
private void labelYaz_Click(object sender, EventArgs e)

{

label1.Text=textBox1.Text ;

}
Label’e yaz butonuna tıklandığı zaman aşağıdaki görüntü elde edilir.
Clear Özelliği: textBox’ı temizlemek için kullanılır.
Örnek:
private void temizle_Click(object sender, EventArgs e)

{

textBox1.Clear();

}
veya
private void temizle_Click(object sender, EventArgs e)

{

textBox1.Text = "";

}
Temizle butonuna tıklandığı zaman aşağıdaki görüntü elde edilir.
backcolor Özelliği: textBox’ın arkaplan rengi ile ilgili işlemler yapılır.
Örnek:
private void Form1_Load(object sender, EventArgs e)

{

textBox1.BackColor = Color.Red;

//Daha fazla bilgi için : www.gorselprogramlama.com

}
Formu çalıştırdığımızda zaman aşağıdaki görüntü elde edilir.
Enabled Özelliği: textBox’ın aktif veya pasif yapar.true ise aktif , false ise pasiftir.
Örnek:
private void Form1_Load(object sender, EventArgs e)

{

textBox1.Enabled=false ;

} //Daha fazla bilgi için : www.gorselprogramlama.com
Formu çalıştırdığımızda  aşağıdaki görüntü elde edilir.
visible Özelliği: textBox’ın görünmezliği ilgili işlemler yapılır.true ise görünür,false ise görünmez.
Örnek:
private void Form1_Load(object sender, EventArgs e)

{

textBox1.Visible =false ;

}
Formu çalıştırdığımızda  formdaki textbox’ın kaybolduğunu görürüz.
forecolor Özelliği: textBox’ın yazı rengi ile ilgili işlemler yapılır.
Örnek:
private void Form1_Load(object sender, EventArgs e)

{

textBox1.ForeColor = Color.Red;

}
Formu çalıştırdığımızda aşağıdaki görüntü elde edilir.
MaxLength Özelliği: textBox’a maksimum kaç karakter girileceğini belirler.
Örnek:
private void Form1_Load(object sender, EventArgs e)

{

textBox1.MaxLength = 10;

}
Formu çalıştırdığımızda  aşağıdaki görüntü elde edilir.
PasswordChar Özelliği: textbox’ın belirli bir karakterle yazılmasını sağlar.Şifre girişlerinde kullanılır.Mesela şifre girişlerinde karakterler gözükmez.Karakterler yerine yıldız işaretini görürüz.İşte bu işlemi bu özellik sayesinde belirleriz.
Örnek:
private void Form1_Load(object sender, EventArgs e)

{

textBox1.PasswordChar = (char)42; //42 yıldızın ascii kodu.Farklı bir karakterde kullanabiliriniz.Mesele nokta çıkması için 42 yerine noktanın ascii kodunu yazmalısınız.

}
Formu çalıştırdığımızda  aşağıdaki görüntü elde edilir.
MultiLine Özelliği: Yazım işlerini birden fazla satırda yapmak için kullanılır.textBox’ın üst sağındaki küçük ok’a tıklayın.Ve MultiLine’ı okleyin.
Undo Özelliği: textbox’ta yapılan işleme bir geri alma özelliği ekler.
Örnek:
private void Form1_Load(object sender, EventArgs e)

{

textBox1.Undo();

}
Formu çalıştırdığımızda  aşağıdaki görüntü elde edilir.
yazdık yazıyı.
yukarıda silme tuşuna  basarak iki karakter siliyorum.


Silme işleminden sonra Ctrl+Z dediğimde sildiğim yer tekrar geliyor.Yani işlemi geri almış olurum.
HideSelection Özelliği: textbox’ta ifadeyi seçtikten sonra başka bir nesne ile işlem yaparsanız seçim gözükmez.Bunun nedeni bu özelliğin true olmasıdır.Eğer seçtiğimiz kısımların gözükmesini istiyorsak bu özelliğin değerini false yapmamız gerekir.
Örnek: Önce true haline bakalım.Aşağıda textbox1′de yazıyı seçtikten sonra textbox2′ye gidersem seçili kısım yok olur.Bunu önlemek için aşağıdaki kodları yazıyoruz.
private void Form1_Load(object sender, EventArgs e)

{

textBox1.HideSelection = false;

}
Formu çalıştırdığımızda  aşağıdaki görüntü elde edilir.
SelectionStart Özelliği: textbox’daki seçili alanın başlangıç noktasını öğrenmek için kullanılırız.
Örnek:
private void Form1_Load(object sender, EventArgs e)

{

textBox1.HideSelection = false;

}

private void sec_Click(object sender, EventArgs e)

{

label1.Text= textBox1.SelectionStart.ToString()+". karakterden sonra seçim yaptın";

}
Formu çalıştırdığımızda  aşağıdaki görüntü elde edilir.
Daha fazla bilgi için : www.gorselprogramlama.com
SelectionLenght Özelliği: textbox’taki seçili bölgenin karakter olarak uzunluğunu bulmak için kullanırız.
Örnek:
private void Form1_Load(object sender, EventArgs e)

{

textBox1.HideSelection = false;

}

private void sec_Click(object sender, EventArgs e)

{

label1.Text= textBox1.SelectionStart.ToString()+". karakterden sonra "+textBox1.SelectionLength.ToString()+" karakter seçtin";

}
Formu çalıştırdığımızda  aşağıdaki görüntü elde edilir.
Select Özelliği: textbox’ta belirlenen bölgenin seçimini gerçekleştirmek için kullanılır.
Kullanımı : textBox1.Select(başlangıç,uzunluk)
Örnek:
private void Form1_Load(object sender, EventArgs e)

{

textBox1.HideSelection = false;

}

private void sec_Click(object sender, EventArgs e)

{

textBox1.Select (int.Parse(textBox2.Text), int.Parse(textBox3.Text));

}
Formu çalıştırdığımızda  aşağıdaki görüntü elde edilir.
SelectAll Özelliği: textbox’taki bütün ifadeyi seçmekçin kullanılır.
Örnek:
private void Form1_Load(object sender, EventArgs e)

{

textBox1.HideSelection = false;

}

private void sec_Click(object sender, EventArgs e)

{

textBox1.SelectAll();

}//Daha fazla bilgi için : www.gorselprogramlama.com
Formu çalıştırdığımızda aşağıdaki görüntü elde edilir.
SelectedText Özelliği: atandağı değeri textbox’taki seçili alana ,seçili alan yoksa imlecin bulunduğu noktaya yazar.
Örnek:
private void Form1_Load(object sender, EventArgs e)

{

textBox1.HideSelection = false;

}

private void sec_Click(object sender, EventArgs e)

{

textBox1.SelectedText = textBox2.Text;

}
Formu çalıştırdığımızda  aşağıdaki görüntü elde edilir.
aaaaaaa’yı seçili bölgenin yerine yapıştırır.
aaa’yı seçili bölgenin yerine yapıştırır.
aaa’yı seçili bölge olmadığı için imlecin bulunduğu yere yapıştırır. (imleç com’un sol yanında)

String Fonksiyonlar – Trim – TrimEnd – TrimStart- C# Console Ders


rim, TrimEnd, TrimStart : Parametre olarak verilen bir karakteri değişkenin başından ve sonundan kaldırır.Herhangi bir karakter belirtilmediği zaman boşlukları kaldırır.
Kullanım Şekli : st1.Trim(“?”) st1.TrimStart(“?”) Başından Kaldırır. st1.TrimEnd(“?”) Sonundan Kaldırır.
Örnek: Girilen iki kelimeyi karşılaştıralım.
 

class Program 

{ // Daha fazla bilgi için : www.gorselprogramlama.com 

static void Main(string[] args) 



string str1, str2; 

Console.Write("1. stringi giriniz = "); 

str1 = Console.ReadLine(); 

Console.Write("2. stringi giriniz = "); 

str2 = Console.ReadLine(); // Daha fazla bilgi için : www.gorselprogramlama.com 

//Daha fazla bilgi için : www.gorselprogramlama.com 

if (string.Compare(str1, str2) == 0) Console.Write("Stringler aynı"); 

else Console.Write("Stringler farklı"); 

Console.ReadKey(); // Daha fazla bilgi için : www.gorselprogramlama.com 




Aşağıdaki örnekte ikinci kelimeden sonra bir kaç defa boşluk tuşuna bastım.Ve farklı dedi.Bunu engellemek için Trim özelliğini kullanabiliriz.

Örnek: Trim ekleyerek yapalım. 
 

class Program 



static void Main(string[] args) 

{ // Daha fazla bilgi için : www.gorselprogramlama.com 

string str1, str2; 

Console.Write("1. stringi giriniz = "); 

str1 = Console.ReadLine(); 

Console.Write("2. stringi giriniz = "); 

str2 = Console.ReadLine(); 

//Daha fazla bilgi için : www.gorselprogramlama.com 

if (string.Compare(str1.Trim(), str2.Trim()) == 0) Console.Write("Stringler aynı"); 

else Console.Write("Stringler farklı"); 

Console.ReadKey(); 




Aşağıda ikinci kelimeden sonra bir kaç defa boşluk tuşuna bastım.Trim ile bu boşluklar alındığı için kelimeler aynı dedi.

23 Ekim 2012 Salı

Switch-Case ile doğacak çocuğa isim bulma programı#


        
Evet arkadaşlar öncelikli olarak herkese selamlar. Switch-case yapısını hem daha iyi anlamamız açısından hemde hayırlı bir işe de vesile olması amacıyla başlıktada okuduğunuz üzere Switch-Case ile doğacak çocuğa isim bulma programını yapmış bulunmaktayım.

Programda 2 tane Buton+1 adet PictureBox+1 adet Label ve 1 adet Textbox kullanmış bulunmaktayım...
Programın kaynak kodları: 
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("Programı kullandığınız için teşekkür ederim. \nProgram Yazarı:FATİH ÇETİN");
Close();
}

private void button1_Click(object sender, EventArgs e)
{
string harf = txtharf.Text;
switch (harf)
{
case "A":
MessageBox.Show("Kız için:Ayla \nErkek için:Alpay");
break;
case "B":
MessageBox.Show("Kız için:Büşra \nErkek için:Berke");
break;
case "C":
MessageBox.Show("Kız için:Cavidan \nErkek için:Cevdet");
break;
case "D":
MessageBox.Show("Kız için:Derya \nErkek için:Deniz");
break;
case "E":
MessageBox.Show("Kız için:Emel \nErkek için:Emir");
break;
case "F":
MessageBox.Show("Kız için:Funda \nErkek için:Faruk");
break;
case "G":
MessageBox.Show("Kız için:Gönül \nErkek için:Gazanfer");
break;
case "H":
MessageBox.Show("Kız için:Halide \nErkek için:Halil");
break;
case "I":
MessageBox.Show("Kız için:Irmak \nErkek için:Itri");
break;
case "J":
MessageBox.Show("Kız için:Jale \nErkek için:Jefi");
break;
case "K":
MessageBox.Show("Kız için:Kamuran \nErkek için:Kemal");
break;
case "L":
MessageBox.Show("Kız için:Lale \nErkek için:Levent");
break;
case "M":
MessageBox.Show("Kız için:Mehtap \nErkek için:Mustafa");
break;
case "N":
MessageBox.Show("Kız için:Necla \nErkek için:Nadir");
break;
case "O":
MessageBox.Show("Kız için:Orkide \nErkek için:Oktay");
break;
case "P":
MessageBox.Show("Kız için:Pakize \nErkek için:Polat");
break;
case "R":
MessageBox.Show("Kız için:Raziye \nErkek için:Remzi");
break;
case "S":
MessageBox.Show("Kız için:Seda \nErkek için:Selim");
break;
case "T":
MessageBox.Show("Kız için:Tuğba \nErkek için:Tuğran");
break;
case "U":
MessageBox.Show("Kız için:Uçay \nErkek için:UMUTCAN");
break;
case "V":
MessageBox.Show("Kız için:Vildan \nErkek için:Veysel");
break;
case "Y":
MessageBox.Show("Kız için:Yağmur \nErkek için:Yağız");
break;
case "Z":
MessageBox.Show("Kız için:Zehra \nErkek için:Zeki");
break;
default:
MessageBox.Show("Lütfen geçerli bir karakter giriniz");
break;
}}}}
Buton2 programı kapatmaya,Buton1 ise programı konfigure etmeye yarar.
Umarım faydalı bir çalışma olmuştur. Diğer programlarda görüşmek dileğiyle...

KAYNAK:  http://www.muhendislikegitimi.com/visual-c-sharp-ders-notlari/item/503-switch-case-ile-dogacak-cocuga-isim-bulma-programi.html

C# While Döngüsü İle Çİft Sayıları Toplama


Merhaba arkadaşlar. Bugün sizlere çok da zor bir yöntem olmayan "0 ile 100 Sayıları Arasında Çift Sayıları Toplama" programını anlatacağım. Dediğim gibi basit bir işlem ama c# konusunda yeni olan arkadaşlar için While döngüsünü anlamak açısından faydalı olacağını düşünüyorum.

İlk olarak c# programımızın "Console Application" kısmında yeni bir uygulama açıyoruz ve şu kodları kod kısmına uyguluyoruz.

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int a = 0;  // ilk olarak a değişkeni 0 değerinde
int toplam = 0 ;  //toplam değişkenide 0 değerinde
do
{
toplam =toplam+ a;
a =a+ 2;
} while (a <= 100);//a 100 oluncaya kadar devam etmesini sağlayan şart
Console.WriteLine("0-100 arasındaki çift sayıların toplamı: {0}", toplam);
Console.ReadKey();
}
}
}
Bu kodlar ile ekrana şu şekilde bir görüntü gelmesi gerekiyor.

18 Ekim 2012 Perşembe

Form Geçişleri


Merhaba arkadaşlar öncelikle hepinize merhaba,
Bu yazımızda form geçişlerini göstermeye çalışacağım.Bu zamana kadar yaptığımız uygulamalarda tek form ve mesaj kutularından faydalanmıştık.Daha kompleks uygulamalar için birden fazla form gerekebilir.Bu gibi durumlarda formlar arası geçiş önemli konudur.Başlayalım...
Öncelikle Solution Explorer penceresinden uygulama adımıza sağ tıklayıp Add>Windows Form sekmesine tıkladığımızda yeni bir form oluşturmuş oluyoruz.
Form 2 oluşturulduktan sonra Form 1 kod bölümünde form 2'yi tanımlamamız gerekiyor.Bunun için aşağıdaki resimde görüldüğü gibi turuncu alanı yazıyoruz.
 
Sonrasında Form 2 kod bölümüne gelip yine turuncu bölümdeki kodu belirtilen yere yazıyoruz.
 
Şimdi çalışıp çalışmadığını test etmek için Form 1 içinde şekildeki gibi bir tasarım oluşturuyoruz.
Ardından buton içine aşağıdaki gibi bir kod yazıyoruz.
private void button1_Click(object sender, EventArgs e)
{

frm2.Show();

}
Geçiş işlemleri bu kadar sorularınız için yorum bölümünü kullanabilirsiniz.Kolay Gelsin.


KAYNAK :  http://www.muhendislikegitimi.com/visual-c-sharp-ders-notlari/item/504-form-gecisleri.html

İç içe if-else yapısı ile basit giriş paneli uygulaması


İf-Else yapısını kavramak adına oluşturulmuş basit bir uygulama.Uygulama şu şekilde çalışıyor metin kutularına girdiğiniz öğrenci numaranız ve şifrenizi doğrulayıp eğer bilgiler doğruysa size bir mesaj kutusu ile uyarı verip ardından bir siteye yönlendiriyor.Bilgilerin eşleşmemesi durumunda ise bir hata mesajı verip bilgilerinizi tekrardan girmenizi istiyor.

Öncelikle aşağıda resimde görünen tasarımın bir benzerini oluşturalım.İhtiyacımız olanlar.
-2 Metin Kutusu(Textbox)
-2 Etiket(Label)
-1 Buton
Bu işlemleri gerçekleştirdikten sonra kod bölümüne gelip resimde görüldüğü gibi kodları yazıyoruz.
Yazdığımız kodları açıklamak gerekirse;
Yeşil Bölümde Form1_Load altına sistemin,kullanıcının gireceği bilgilerle eşleştireceği öğrenci numarası ve şifresini “int” olarak atıyoruz.
Kırmızı Bölümde Kullanıcının metin kutularına( Textbox) gireceği bilgilere dönüşüm uygulayarak yeni değişkenlere atıyoruz.
Mavi Bölümde iste iç içe if-else yapısı ile öğrenci numarası ve şifrenin aynı anda işlenmesini sağlıyoruz.Ve System.Diagnostics.Process.Start("http://www.siteadresi.com");”kodu ile kullanıcıyı istediğimiz siteye yönlendirebiliyoruz.Eğer bir site yerine herhangi bir Windows uygulamasına yönlendirmek isterseniz,yapmanız gereken site adresi yerine istenilen dosyanın patikasını yani konumunu yazmanız yeterli olacaktır.Ek olarak parolanın girildiği metin kutusunda şifreyi noktalı göstermek için yapmamız gereken,Parolaya ait metin kutusunun özelliklerinden “UseSystemPasswordChar” değerini True olarak değiştirmeliyiz.

C# Diziler


Aynı tipteki bir veri gurubunun bir değisken içinde saklanmasıdır.
-Veriler Hafızada 0 dan baslayarak sıra ile bulunur.
-C# dilinde dilinde diziler system.Array tipindedir.
-Bir örnek olarak, haftanın günleri bir boyutlu dizi olarak düsünülebilir. İlkeleman (0. Eleman),
-Pazartesi, son eleman da (6. Eleman) Pazar günü olacaktır.
-Diğer bir örnek, bir ayda bulunan günler, iki boyutlu bir dizi olarak düsünülebilir. Yatayda haftanın günleri bulunurken, düseyde hafta sayısı olabilir.
-Bir yıldaki günleri de üç boyutlu bir dizi olarak  düsünülebilir. 1. boyut Haftanın günleri, 2. boyut hafta numarası. Üçüncü boyut da aylar olur.
-C# da tek boyutlu bir dizi, normal bir değisken gibi tanımlanır , sadece değisken ifadesinden sonra köseli parantez kullanılır.

Örnek 1:
private void Form1_Load(Object sender, EventArgs e)
{
string[] gunler = new string[7];
gunler[0] = "Pazartesi";
gunler[1] = "Salı";
gunler[2] = "Çarsamba";
gunler[3] = "Persembe";
gunler[4] = "Cuma";
gunler[5] = "Cumartesi";
gunler[6] = "Pazar";
Messagebox.Show(gunler[0]);
}
Diziler
Örnek 2 :
Veriler dizilere yerlestirilirken 0 dan itibaren baslanarak yerlestirilir ve diziden veriler alınırken 0 dan baslanır. Değisken adının önündeki küme parantezinin içindeki sayılar değiskenin index numarasını verir.
private void Form1_Load(Object sender, EventArgs e)
{
string[] gunler = {"Pazartesi","Salı","Çarsamba","Persembe","Cuma","Cumartesi","Pazar"};
Messagebox.Show(gunler[0]);
}
Diziler
Dizi değisken tanımlama sekilleri

string[] gunler = {"Pazartesi","Salı","Çarsama","Persembe","Cuma","C.tesi","Pazar"};


string[] gunler = new string[7];
gunler[0] = "Pazartesi";
gunler[1] = "Salı";
gunler[2] = "Çarsamba";
gunler[3] = "Persembe";
gunler[4] = "Cuma";
gunler[5] = "Cumartesi";
gunler[6] = "Pazar";
Örnek 3 :

 private void btnGoster_Click(object sender, EventArgs e)
{ string[] gunler = new string[7];
gunler[0] = "Pazartesi";
gunler[1] = "Salı";
gunler[2] = "Çarsamba";
 gunler[3] = "Persembe";
gunler[4] = "Cuma";
gunler[5] = "Cumartesi";
gunler[6] = "Pazar";            
for (int i = 0; i < gunler.Length; i++)
{              
 lsbGunler.Items.Add(gunler[i]);
}        
}
Diziler
For DÖNGÜSÜ YERİNE Foreach KULLAN  
 private void btnGoster_Click(object sender, EventArgs e)
{ string[] gunler = new string[7];
 gunler[0] = "Pazartesi";
gunler[1] = "Salı";
gunler[2] = "Çarsamba";
gunler[3] = "Persembe";
gunler[4] = "Cuma";
gunler[5] = "Cumartesi";
gunler[6] = "Pazar";
foreach (string i in gunler)     
  {        
lsbGunler.Items.Add(i);     
 }        
 }  

Örnek 4 :

&nbsp;private void Form1_Load(object sender, EventArgs e)
{
double[] sayilar = { 0.15, 0.17, 0.1, 0.3, 0.22, 0.45, 0.54, 0.68, 0.72, 1.1, 3.1};
int eleman = sayilar.Length;
MessageBox.Show("Sayılar dizinde toplam" + eleman.ToString() + " adet eleman vardır");
foreach (double i in sayilar)
{
lsbGunler.Items.Add(i);
}
}
Örnek 5 :
-1 ile 500 arasında rastgele 100 adet tamsayı üretip bir diziye dolduran bir program yazınız.
-Dizideki bu sayıların en büyük ve en küçük değerlerini bularak ekrana yazdırın. Ayrıca, ortalama değerini de hesaplayarak ekranda gösterin.
private void btnGoster_Click(object sender, EventArgs e)
{
int max, min, ortalama,toplam;
Random rastgelesayi = new Random();
int[] dizi = new int[100];
for (int i = 0; i < 100; i++)
{
dizi[i] = rastgelesayi.Next(500);
}
max = dizi[0];
min = dizi[0];
toplam = 0;
ortalama = 0;
for (int i = 0; i < 100; i++)
{
if (max < dizi[i])
{
max = dizi[i];
}
if (min > dizi[i])
{
min = dizi[i];
}
toplam += dizi[i];
}
lblmax.Text = "Maksimum Sayı: " + max.ToString();
lblMin.Text = "Minimum Sayı: " + min.ToString();
ortalama = toplam / 100;
lblOrtalama.Text = "100 adet Sayının ortalaması: " + ortalama.ToString();
}
Bir önceki örnekte üretilen 100 adet random sayıyı, büyükten küçüğe yada küçükten büyüğe doğru sıralatın ve listbox a ekletin…

Asağıdaki kodları, bir önceki örneğin devamına ekleyelim…
int yedek;
for (int i = 0; i < 100; i++)
{
for (int j = 0; j < 100; j++)
{
if (dizi[i] > dizi[j])
{
yedek = dizi[j];
dizi[j] = dizi[i];
dizi[i] = yedek;
}
}
}
lsbSayilar.Items.Clear();
for (int i = 0; i < 100; i++)
{
lsbSayilar.Items.Add(dizi[i]);
}
.Length Dizideki Eleman sayısı

Belirtilen dizinin eleman sayısını integer (int) olarak verir.
private void Form1_Load(object sender, EventArgs e)
{
Random rastgelesayi = new Random();
int[] dizi = new int[50];
for (int i = 0; i < dizi.Length; i++)
{
dizi[i] = rastgelesayi.Next(100);
}
}
.Clear Diziyi Temizleme

Parametre olarak verilen dizinin, belirtilen indis aralığındaki tüm değerleri temizler.Temizleme isleminde atanan değer, dizi elemanlarının tiplerine göre değisir. Örneğin int tipinde tanımlı bir dizinin elemanları temizlenirse 0 değerini alacaktır. Buna karsın String tipindeki elemanlar “” (bos yazı) değerini alır.
Örnek;
int[] dizi = new int[50];
private void Form1_Load(object sender, EventArgs e)
{
Random rastgelesayi = new Random();
int elemansayisi = dizi.Length;
int dizininboyutu = dizi.Rank;
MessageBox.Show("Dizinin Eleman sayisi: " + elemansayisi.ToString());
MessageBox.Show("Dizinin Boyutu: " + dizininboyutu.ToString());
for (int i = 0; i < dizi.Length; i++)
{
dizi[i] = rastgelesayi.Next(500);
}
// Burada Dizi doldu
}
private void btnDiziyiBosalt_Click(object sender, EventArgs e)
{
Array.Clear(dizi, 0, dizi.Length); // Dizi Burada Bosaltıldı Durma noktası ekle ve Dizinin içine Bak
}
.Çok Boyutlu Diziler
Birden fazla boyutu olan dizilere çok boyutlu diziler denir. İki tip çok boyutlu dizi vardır.
Matris diziler
Düzensiz diziler (Jagged)
Matris Diziler

Adından da anlasılacağı gibi matris yapıda dizilerdir. Matris diziler 2 veya daha fazla boyutlu olabilirler. Örneğin 3x2 boyutlu bir matris dizisi asağıdaki gibi tanımlanır.
int [,] mdizi ={{1,2},{3,4},{5,6}};
mdizi[0,0] = 1;
mdizi[0,1] = 2;
mdizi[1,0] = 3;
mdizi[1,1] = 4;
mdizi[2,0] = 5;
mdizi[2,1] = 6;
3 veya daha çok boyutlu diziler teoride dilin yapısına uygun olmasına rağmen gerçek hayatta çok fazla kullanılmazlar. 3 ve daha fazla boyutlu dizilerde islem yapması daha zordur. Mesela 3 boyutlu bir dizi için iç içe 3 tane for döngüsü kullanmak gerekmektedir. Asağıda 3 boyutlu bir matris dizi tanımlaması örnek olarak verilmistir.
int [ , , ] mdizi ={{{1,2},{3,4},{5,6}}, {{1,2},{3,4},{5,6}}};
mdizi[0,0,0] = 1;
mdizi[0,0,1] = 2;
mdizi[0,1,0] = 3;
mdizi[0,1,1] = 4;
mdizi[0,2,0] = 5;
mdizi[0,2,1] = 6;
mdizi[1,0,0] = 1;
mdizi[1,0,1] = 2;
mdizi[1,1,0] = 3;
mdizi[1,1,1] = 4;
mdizi[1,2,0] = 5;
mdizi[1,2,1] = 6;
Düzensiz (Jagged) Diziler
Bir dizinin her bir elemanı ayrı bir dizi ise bir dizi içeriyorsa o zaman bu dizilere düzensiz diziler denir. Her bir satırdaki dizi farklı boyut olabileceği için matris dizisi formunda olması gerekmez. Bu sebeple bu dizilere düzensiz (jagged) yada çentikli dizi adı verilir.
int[][] dizi = new int[3][];
dizi[0] = new int[5];
dizi[1] = new int[4];
dizi[2] = new int[3];
Örnek.
string [] [] dizi = new string [3] [];
dizi[0] = new string [2];
dizi[1] = new string [3];
dizi[2] = new string [1];
dizi[1] [2] = “çentikli";
Buradan da anlasılacağı gibi düzensiz dizilerin matris dizilerden farkı, sütun sayısının sabit olmamasıdır. Diziler konusunu bir defada anlamak elbette zordur. Özellikle düzensiz dizileri anlamak için çok fazla örnek yapmak gerekir.
Örnek.
private void Form1_Load(object sender, EventArgs e)
{
int[][] dizi = new int[3][];
dizi[0] = new int[5];
dizi[1] = new int[3];
dizi[2] = new int[2];
for (int i = 0; i < dizi.Length; i++)
{
for (int j = 0; j < dizi[i].Length; j++)
{
dizi[i][j] = 1*( i + j);
}
}
foreach (int[] sayi in dizi)
{
foreach (int deger in sayi)
{
lblSonuc.Text += deger.ToString()+ " ";
}
}
}
Dizi İşlemleri
Dizi işlemleri, programlarda çok sık kullanılan programlama öğelerindendir.
-IndexOf()
-LastIndexOf()
-Sort()
-Reverse()
Array sınıfı yardımıyla kullanılırlar.
IndexOf() - LastIndexOf()
IndexOf() : Aramayı bastan baslatır ve aranan elemanın kaçıncı sırada olduğunu değer olarak döndürür.
LastIndexOf() : Aramayı sondan baslatarak aranan elemanın bastan kaçıncı sırada
olduğunu değer olarak döndürür.
Eğer aranan eleman bulunamazsa -1 değeri döndürülür.
ÖRNEK
private void Form1_Load(object sender, EventArgs e)
{
int[] dizi = { 1, 3, 5, 7, 9, 11, 1, 3, 5, 7, 9,11 };
MessageBox.Show(Array.IndexOf(dizi,1).ToString());
}
Sonuç : 0 dır. Arama sol baştan itibaren başlamıştır. Yer numarası ise baştan 0. sıradadır.
private void Form1_Load(object sender, EventArgs e)
{
int[] dizi = { 1, 3, 5, 7, 9, 11, 1, 3, 5, 7, 9,11 };
MessageBox.Show(Array.LastIndexOf(dizi,1).ToString());
}
Sonuç : 6 dır. Arama sağdan sola yani sondan basa doğrudur. Ancak yer bildirimini bastan bastan itibaren baslamıstır yeri ise 0 dan itibaren 6. sıradadır.
Array.Sort()
Dizinin elemanlarını  küçükten büyüğe doğru sıralar.
private void Form1_Load(object sender, EventArgs e)
{
int[] dizi = { 1, 3, 5, 7, 9, 11, 1, 3, 5, 7, 9,11 };
for (int i = 0; i < dizi.Length; i++)
{
lblSonuc1.Text += dizi[i].ToString() + " - ";
}
Array.Sort(dizi); // lblSonuc2 de dizinin sıralandığını görüyoruz
for (int i = 0; i < dizi.Length; i++)
{
lblSonuc2.Text += dizi[i].ToString() + " - ";
}
}
ArrayList
-Klasik dizilerle çalısırken karsılasabileceğimiz temel sorunlar sunlardır.
-Dizilerin sınırları sabittir. int[] dizi = new int[60];
- Dizilerin tüm elemanları aynı türden olmalıdır. Örn. Hepsi int
-Kullanmadığımız dizi elemanlarından dolayı bellek alanları gereksiz yere isgal edilmektedir.
-Örneğin sayısını bilemediğimiz bir dizinin eleman sayısını 500 olarak belirlediğimizi varsayalım. Çalısma zamanında dizimizin sadece 10 elamanını kullandığımız durumda diğer 490 elemanlık bellek alanı bos olarak kalır. Öte yandan dizimizde tutmak istediğimiz değiskenlerin sayısı 501 bir olduğu bir durumda "IndexOutOfRangeException" istisnai durumu ortaya çıkar ve program bu hatadan dolayı sonlanır.
-ArrayList sınırları dinamik olarak değisebilen diziler olarak tanımlanır.
-Bu veri yapısı .NET sınıf kütüphanesinin System.Collections isim alanında bulunur.
ÖRNEK

private void Form1_Load(object sender, EventArgs e)
{
ArrayList DiziListesi = new ArrayList();
// DiziListesi isimli ArrayList nesnesi olusturuyoruz.
// DiziListesi nesnemize sırası ile 5, 8, 1, 17 ve 20 değerlerini
DiziListesi.Add(5);// Add metodu ile ekleyelim.
DiziListesi.Add(8);
DiziListesi.Add(1);
DiziListesi.Add(17);
DiziListesi.Add(20);
foreach (object eleman in DiziListesi) // DiziListesi'in Sonuç 1'e yazdıryoruz:
{ lblSonuc1.Text += eleman.ToString() + " - "; }
DiziListesi.Remove(8);// DiziListesi dizimizden 8 ve 20 değerlerini çıkartalım:
DiziListesi.Remove(20);
DiziListesi.Add(66); // DiziListesi dizimize 66 ve 4 değerlerini ekliyoruz:
DiziListesi.Add(4);
foreach (object eleman in DiziListesi) // DiziListesi'in Sonuç 2'ye yazdıryoruz:
{ lblSonuc2.Text += eleman.ToString() + " - "; }
}
ArrayList Metodları ve Özellikleri
 Add() Bir nesneyi ArrayList'in sonuna ekler.
 BinarySearch()Sıralanmıs bir ArrayList içinde bir nesneyi Binary search algoritması kullanarak arar.
 Clear() ArrayList'in tüm elemanlarını siler. Sıfırlar.
 Contains() Herhangi bir nesnenin ArrayList'in elemanı olup olmadığını kontrol eder.
 Insert()Dizinin sonuna değilde istediğimiz bir yerine indeksini belirterek eklememizi sağlar.
 Remove() Herhangi bir elemanı diziden siler.
 Reverse() Diziyi ters çevirir.
 Sort() Diziyi sıralar.
Diğer metodlar için lütfen asağıdaki linki kullanın;

Örnek
Personel adlarını tutacak bir ArrayList  tanımlayınız.
Form a bir textbox ekleyerek adları girin. Girilen bu adlar bir ArrayList’te tutulmalı.
Listeyi ve Eleman sayısını Label a yazdırın
Listeden adı textbox a girilen isimi silin.
Listeyi harf sırasına göre sıralatın.
Listeyi harf sırasına göre tersten sıralatın. 
Form Ekranı