C#’ ta Diziler

19.01.2011

Matematikteki “Matris” olayına C#’ta “Diziler” diyoruz. Sadece bir satır veya sadece bir sütundan oluşan matrise tek boyutlu dizi, satır ve sütunlardan oluşan matrislere çok boyutlu diziler diyoruz. Matris konusuna buradan göz atabilirsiniz.

Tek satırlı matris: A(1,n)=[0,1,2,3,4,5,6,7,……..,n]
sadece tek satırdan n tane sütundan oluşan ve n tane elemanı olan bir dizi.

VeriTipi[] DiziAdı = new VeriTipi[ElemanSayisi];

.

Satır ve Sütunlardan oluşan matris:

n tane sütun ve m tane satırdan oluşan ve m*n elemanlı çok boyutlu bir dizi.

VeriTipi[,] DiziAdı = new VeriTipi [SatırSayisi,SütunSayisi];

C#’ta diziler referans tipinde değişkenlerdendir. C#’ta tanımlanan tüm diziler System.Array sınıfından türemiş bir nesnedir.

5 adet sayiyi tutan bir dizi tanımlamak istersek;

int[] Sayilar = new int[5];

bu dizinin elemanları şu şekilde tanımlarız;

Sayilar[0]=23; // Sayilar isimli dizinin ilk elemanı
Sayilar[1]=1256; // ikinci elamanı
Sayilar[2]=12; // üçüncü elemanı
Sayilar[3]=2300; // dördüncü elemanı
Sayilar[4]=125; // beşinci elemanı

Görüldüğü gibi dizinin ilk elamanı 0′dan başlıyor.

Aynı diziyi şu şekilde de tanımlayabiliriz.

int[] Sayilar = {23, 1256, 12, 2300, 125};

şimdi de for döngüsü ile bir dizinin bütün elemanlarına ulaşıp toplama yapıp sonuca ulaşalım.

int[] Sayilar = {23, 1256, 12, 2300, 125};

int Toplam=0;

for(int i=0; i < 5; i++)
{
     Toplam += Sayilar[i];
}

for döngüsü her dönüşünde sırasıyla dizinin bütün elemanlarına ulaşıp Toplam değişkenine ekleyecek. Toplam değişkeninin en son değeri dizideki bütün elemanların toplamı olacak.

for döngüsünde koşul kısmında dizinin eleman sayısı olan 5 yerine Sayilar.Length de yazabiliriz. Sayilar.Length Sayilar dizisinin eleman sayısını verir.

int[] Sayilar = {23, 1256, 12, 2300, 125};

int Toplam=0;

for(int i=0; i < Sayilar.Length; i++)
{
     Toplam += Sayilar[i];
}

Length: Dizinin eleman sayısını verir.
int ElemanSayisi= Sayilar.Length;

Clear: Dizideki bütün elemanları temizler dizi int tipindeyse bütün elemanlar 0 değerini alır. eğer string dizisiyse bütün elemanlar boş “” değerini alır.
Array.Clear (Sayilar);

Reverse: Dizinin eleman sırasını tersine çevirir.
Array.Reverse(Sayilar);

Sort: Dizinin elemanlarını büyükten küçüğe sıraya dizer. eğer string dizisiyse harf sırasına göre dizer.
Array.Sort(Sayilar);
.

1 tane sayısal loto kuponunda 8 tane kolon vardır ve her kolonda 6 sayı mevcuttur. Bu kupondaki 8 kolonu da oynadığımızı düşünelim. Bu kolonları alt alta yazalım. Oluşan dizi 8 satırlı 6 sütunlu bir dizi olacaktır. Bu diziye 2 boyutlu dizi diyoruz.

int[,] SayisalLotoKuponu = new int [8, 6];

şimdi kuponlardaki sayıları belirleyelim;

//Birinci kolon
SayisalLotoKuponu [0,0] = 7;
SayisalLotoKuponu [0,1] = 8;
SayisalLotoKuponu [0,2] = 15;
SayisalLotoKuponu [0,3] = 21;
SayisalLotoKuponu [0,4] = 27;
SayisalLotoKuponu [0,5] = 36;

SayisalLotoKuponu [2,4] = 27;  // 3. kolonun 5. sayısı

SayisalLotoKuponu [7,5] = 36; // 8. kolonun 6. sayısı

Dikkat edilecek nokta eleman sayıları 0’dan başladığı için istediğimiz satır ve sütuna ulaşabilmek için satır ve sütun sayısını 1 eksiltip yazıyoruz. Yani 4.kuponun 3. sayısına ulaşmak için
SayisalLotoKuponu [3,2];
yazıyoruz.

Şimdi de bu kupondan 3 adet olduğunu düşünelim. Yani hepsinin 8 kolonu oynanmış 3 adet kupon. Bu da 3 boyutlu dizi oluyor.

int[, ,] SayisalLotoKuponlari = new int [8, 6, 3];

Kuponlardaki sayıları yazarsak;

//Birinci Kupon Birinci kolon
SayisalLotoKuponlari [0,0,0] = 7;
SayisalLotoKuponlari [0,1,0] = 8;
SayisalLotoKuponlari [0,2,0] = 15;
SayisalLotoKuponlari [0,3,0] = 21;
SayisalLotoKuponlari [0,4,0] = 27;
SayisalLotoKuponlari [0,5,0] = 36;

SayisalLotoKuponlari [2,4,1] = 27;  // 2.Kuponun 3.kolonundaki 5.sayı

SayisalLotoKuponlari [7,5,2] = 36; // 3.Kuponun 8.kolonundaki 6.sayı

C# Server İç (Internal) IP Alma

C#’ta server iç (internal) ip adresi alma:var ipAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList.FirstOrDefault(ip => i...… Devamını oku...