C# Diziler

sdkbyrm

webmasterfrm
Üyelik Tarihi
23 Aralık 2020
Mesajlar
813
Beğeniler
1
Ticaret: 0 / 0 / 0
C# programlama dilinde bir değişken oluşturup, içinde bir veri kaydetmeyi öğrendiniz. Ancak benzer tipte verileri gruplayıp tek bir değişken içinde saklamak mümkün. Bu yazıda C# ile dizi tanımlayıp, diziler üzerinde örneklerle işlemler yapacağız.


C# diziler; ortak bir ad ile belirtilen benzer verileri, bir bir arada tutmak için oluşturulmuş bir gruptur. Ve her veri ögesine dizinin bir elemanı denir. Elemanların veri tipleri char, int, float vb. geçerli bir veri tipi olabilir ve elemanlar bitişik bir yerde saklanır. Dizinin uzunluğu, dizide bulunan elemanların sayısını belirtir. C# ‘da diziler için bellek tahsisi dinamik olarak yapılır. Ve diziler nesnedir, bu nedenle önceden tanımlanmış methodları kullanarak boyutlarını bulmak kolaydır. Dizideki değişkenler belirli bir numara sırasına göre sıralanır ve her biri 0’dan başlayan bir dizin içerir. C# içindeki diziler C/C++ ‘da olduğundan epey farklı farklı çalışır.

Dizi kavramını bir örnekle açıklayalım. Bir değişkenin sadece bir değer tutabileceğini öğrendik, örneğin int yas = 1; yas değişkenine sadece bir değer atanabilir. Farz edelim ki, 100 farklı yaş değeri saklamak istiyorsunuz, o zaman 100 farklı değişken oluşturmak zahmetli olacaktır. Bu sorunun üstesinden gelmek için C# bir dizi tanımlayarak bu sorunu çözmek daha akılcı olacaktır. Bu C# diziler konu anlatımı ile bir diziyi tanımla, değer atama ve okuma işlemleri konusunda fikir sahibi olacaksınız.

Diziler ile ilgili aklınızdan çıkarmamanız gereken bir kaç önemli nokta

  • C#’da, tüm diziler dinamik olarak ayrılır.
  • Diziler C# içinde nesneler olduğundan, uzunluklarını Length kullanarak bulabiliriz. Bu, sizeof kullanarak uzunluk bulduğumuz C / C ++ ‘dan farklıdır.
  • Bir C# dizisi değişkeni, veri türünden sonra [] ile diğer değişkenler gibi bildirilebilir.
  • Dizideki değişkenler sıralanır ve her biri 0’dan başlayan bir dizin içerir.
  • C# dizisi, System.Array temel türünün bir nesnesidir.
  • Sayısal dizinin ve referans tipi öğelerinin varsayılan değerleri sırasıyla sıfır ve boş olarak ayarlanır.
  • Tırtıklı dizi elemanlarının referans türleri null olarak başlatılır.
  • Dizi öğeleri, dizi tipi de dahil olmak üzere herhangi bir türde olabilir.
Dizi, bir dizinin tanımına bağlı olarak bir sınıfın nesneleri yada daha ilkel veri türlerini de içerebilir. İlkel veri türlerini her kullanıldığında, gerçek değerler bitişik hafıza konumlarında saklanmalıdır. Bir sınıfın nesneleri durumunda, gerçek nesneler yığın segmentinde depolanır.

Aşağıdaki şekil, dizinin değerlerinin sırayla nasıl kaydedildiğini gösterir:

csharp-diziler.png


Açıklama:
Yukarıdaki örnekte index değeri 0’dan başlıyor. Ayrıca bir dizi içinde sabit bir sayı değeri saklandığı da görünmektedir. Dizi indeksi, dizi boyutunun bir azı kadar olduğunu da unutmamak gerekir.



C# Dizi Tanımlama​


1
2
3

<VeriTipi>[] <DiziAdi>
<VeriTipi>: Dizide saklanacak veri tipini belirtir.


[] :Dizi olarak verilerin saklanacağını ifade eder.

<DiziAdi>: Dizi değişkeninin adını gösterir. Bir değişken adı ile aynı tanımlama kuralları geçerlidir.

C# Dizi Tanımlama Örnekleri:


1
2
3
4
5
6

int[] yas; // Tam sayı türünde değerlerin saklandığı bir dizi
string[] isimler; // String türünde değerlerin saklandığı bir dizi
double[] para; // ondalıklı sayıların saklandığı bir dizi türü
Personel[] pers1; // Personel sınıfından örnek nesnelerin saklandığı bir dizi


C# Başlatma​

C# diziler Array sınıfın birer örneği olduğunu söylemiştim.new anahtar kelimesi ile tanımlanmış bir diziye hemen uzunluk belirtmek mümkündür. Aşağıdaki örneklerde dizi tanımlanıp hemen değer atamaları yapılmıştır.

Örnek: dizi oluşturup uzunluk vermek


1
2
3

string[] stringArray = new string[6];


C# Dizi Tanımlama ve Değer Atama​

Yada dizi oluşturulduğu gibi dizinin elemanlarını başta girebiliriz. new anahtar kelimesi ile Array sınıfından örnek bir dizi oluşturup hemen üzerine değer ataması yapabilirsiniz.


1
2
3

int[] array1 = new int[] { 1, 3, 5, 7, 9 };



1
2
3

string[] gunler= { "PAZARTESİ", "SALI", "ÇARŞAMBA", "PERŞEMBE", "CUMA", "CUMARTESİ", "PAZAR" };


C# Dizi Okuma – C# Dizi Değerlerini Yazdırma​

C# dizideki bir adresi tek tek okumak yada bir döngü ile de okumak mümkündür. Yukarıdaki tabloda belirtildiği gibi okunacak değerin adres bilgisi köşeli parantez ile belirtilip okuma işlemi yapılır. Aşağıdaki örnekte tanımlanmış dizinin 0 ve 4 numaralı index içindeki değerler okunmuştur.


1
2
3
4
5

int[] array1 = new int[] { 1, 3, 5, 7, 9 };
Console.WriteLine(array1[0]);
Console.WriteLine(array1[4]);
Ayrıca dizideki değerleri döngü ile de okumak mümkündür. Sadece listelerde kullanılan foreach yada for ve while ile okuma işlemleri yapılabilir. Aşağıdaki örnekte for döngüsü ile dizinin değerleri alt alta yazdırılmıştır. Burada Length özelliğinin dizinin uzunluğunu verdiğini belirtmek isterim.


1
2
3
4
5
6
7

int[] array1 = new int[] { 1, 3, 5, 7, 9 };
for (int i = 0; i < array1.Length; i++)
{
Console.WriteLine(array1);
}





Ayrıca C# Diziler Konusu ile İlgili Diğer Başlıklar​



C# Dizi Örnekleri​

Örnek: C# dizi tanımlama, değer atama ve değerleri for, foreach, while, do while döngülerini kullanarak ekrana yazdırma


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61

class Program
{
static void Main(string[] args)
{

// dizi tanımlama
int[] intArray;

// dizinin boyutunu belirleme
intArray = new int[5];

// dizinin ilk dizinine değer atama
intArray[0] = 10;

// dizinin ikinci dizinine değer ataa
intArray[1] = 20;

// sonraki dizinlerine değer ataa
intArray[2] = 30;
intArray[3] = 40;
intArray[4] = 50;

//for döngüsü le dizinindeğerlerini yazdırma
Console.Write("For Döngüsü :");
for (int i = 0; i < intArray.Length; i++)
Console.Write(" " + intArray);

Console.WriteLine("");
Console.Write("Foreach DÖngüsü :");

// foreach kullanımı
foreach (int i in intArray)
Console.Write(" " + i);

Console.WriteLine("");
Console.Write("while Döngüsü :");

//while döngüsü
int j = 0;
while (j < intArray.Length)
{
Console.Write(" " + intArray[j]);
j++;
}

Console.WriteLine("");
Console.Write("Do-while döngüsü :");

// do while kullanımı
int k = 0;
do
{
Console.Write(" " + intArray[k]);
k++;
} while (k < intArray.Length);

Console.ReadLine();
}
}





Örnek:Kullanıcı tarafından girilen gün adının haftanın kaçıncı günü olduğunu bulan c# console uygulaması


1
2
3
4
5
6
7
8
9
10
11
12
13

string[] gunler = { "pazartesi", "salı", "carsamba", "persembe", "cuma", "cumartesi", "pazar" };
Console.WriteLine("Gün adı giriniz : ");
string gun = Console.ReadLine();
for (int i = 0; i < gunler.Length; i++)
{
if (gun == gunler)
{
Console.WriteLine(i + 1 + ". gündür");
}
}
Console.ReadLine();



dizi_ornekleri_2
 
Üst