Altbilgi içeriğine atla
Iron Academy Logo
C# öğrenin
C# öğrenin

Diğer Kategoriler

C# Dizilerini Anlamak

[[academy-video-youtube({"vid": "iiDfHgofH8I", "start_time": "0", "title": "Layla Porter's C# Dizileri ve Döngüler Üzerine Videosundan C# Dizilerini Anlamak", "creator": "Layla Porter", "length": "21m 53s"})]]

C#'ta diziler, geliştiricilerin aynı türdeki elemanlardan oluşan bir koleksiyonu art arda gelen bellek yerlerinde saklamasına izin veren temel bir veri yapısıdır. Diziler tek boyutlu, çok boyutlu veya düzensiz olabilirler.

Layla Porter's "C# Yeni Başlayanlar İçin Bölüm 5 - Diziler ve Daha Fazla Döngü" eğitim videosundan ilham alan bu C# dizileri makalesinde, Layla dizilerin temellerine dalıyor ve izleyicilere koleksiyonları yönetmede ve verileri etkili bir şekilde yinelemede gerekli becerileri kazandırmak için C#'ta daha fazla döngü tekniğini tanıtıyor.

Dizileri Anlamak

Layla, dizileri C#'ta sabit uzunlukta koleksiyonlar olarak açıklayarak başlar. Bazı diğer programlama dillerinde dizilerin boyutu dinamik olarak değişebilirken, C#'ta diziler bir kez oluşturulduktan sonra değiştirilemez. Bu, boyutlarının, bellek tahsis kısıtlamaları nedeniyle başlatıldıktan sonra değiştirilemeyeceği anlamına gelir.

Basit Konsol Etkileşimi: Favori Peynirinizi Seçmek

Aşağıdaki kodda, dizilere kıyasla, Layla (1:50'de) ilk önce bir kullanıcının arasından seçim yapabileceği bir öğe listesi ile nasıl karşı karşıya bırakılabileceğini gösterir.

Console.WriteLine("Hello, what is your favourite cheese from this list?");
Console.WriteLine("1. Stilton");
Console.WriteLine("2. Cheddar");
Console.WriteLine("3. Pineapple");
Console.WriteLine("4. Brie");
var favouriteCheese = Console.ReadLine();
Console.WriteLine($"Here is a lump of {favouriteCheese} cheese!");
Console.WriteLine("Hello, what is your favourite cheese from this list?");
Console.WriteLine("1. Stilton");
Console.WriteLine("2. Cheddar");
Console.WriteLine("3. Pineapple");
Console.WriteLine("4. Brie");
var favouriteCheese = Console.ReadLine();
Console.WriteLine($"Here is a lump of {favouriteCheese} cheese!");

Bu kod, ilk olarak kullanıcıya en sevdikleri peynirin ne olduğunu sormak için bir mesajı konsola yazdırmak amacıyla Console.WriteLine kullanır. Daha sonra peynir listesini konsola yazdırmak için Console.WriteLine dört kez daha kullanır. Kod daha sonra kullanıcının girdisini konsoldan okumak ve favouriteCheese değişkeninde saklamak için Console.ReadLine kullanır. Son olarak, kod kullanıcının en sevdiği peyniri içeren bir mesajı konsola yazdırmak için tekrar Console.WriteLine kullanır.

Layla, 2:04'te bu kodun

Understanding Csharp Arrays 1 related to Basit Konsol Etkileşimi: Favori Peynirinizi Seçmek

Bir Dizi Bildirme - Dizi Başlatma

İllüstre etmek için, Layla, kullanıcının bir menüde başlangıçta sunulmuş olduğu peynirlerin listesini ifade eden bir dizi oluşturmak için bir dizi dizgi bildirip başlatmanın nasıl yapılacağını göstererek başlar. Bir boyutlu bir diziyi tanımlama ve parantezler kullanarak ilk değerlerle nasıl doldurulacağını (2:30) ve (2:54) arasında tanıtır.

string[] cheeses = { "Brie", "Cheddar", "Stilton", "Gouda" };
string[] cheeses = { "Brie", "Cheddar", "Stilton", "Gouda" };

Layla, dizilerde birinci elemanın tek boyutlu bir dizide 0'ıncı indeksleme ile erişildiği sıfır tabanlı indekslemenin önemini vurgular. Daha sonra Layla, döngülerde diziler boyunca nasıl yineleme yapılacağını gösterir. Bu döngü yapısı, belirli bir koşula dayalı kodun tekrar tekrar yürütülmesine olanak tanıdığı için programlamada kritik öneme sahiptir.

Döngüleri Uygulama

Döngülere geçerken, Layla for döngüsünü üç temel bileşeniyle tanıtır: başlatıcı, koşul ve tekrarlayıcı. Bu döngü, bir dizinin uzunluğuna dayalı olarak elemanlar arasında yineleme yapmak için kullanılır.

for (int i = 0; i < cheeses.Length; i++)
{
    Console.WriteLine(cheeses[i]);
}
for (int i = 0; i < cheeses.Length; i++)
{
    Console.WriteLine(cheeses[i]);
}

O, 4:44'te cheeses.Length işlevinin dizideki elemanların sayısını verdiğini vurgular, bu da döngünün her bir elemanı tam olarak yinelenmesini sağlar. i değişkeni, indeksler arasında yinelenmek için bir indeks değişkeni olarak çalışır. Bu, yukarıda gösterildiği gibi dizi elemanlarına erişilmeksizin Console.WriteLine metodunu birden çok kez yazmaksızın bireysel dizi elemanlarını etkili bir şekilde yazdırır. Layla, saat 6:17'de, bu for döngüsünün çıkışını önceki örnekle tamamen aynı olarak göstermek için uygulamayı çalıştırır:

Understanding Csharp Arrays 2 related to Döngüleri Uygulama

Sıralama ve Değişmezlik

Layla sıralamanın faydasını açıklar ve ardından 7:17'de Sort metodunu kullanarak bir diziyi alfabetik olarak sıralamayı gösterir, C#'ta dizilerin değişmezliği nedeniyle sıralamanın aslında arka planda yeni bir dizi oluşturduğunu belirterek uyarıda bulunur. Bu, veri manipülasyonunun bellek ve performansı nasıl etkilediği konusunda kritik bir noktadır.

Array.Sort(cheeses);
Array.Sort(cheeses);

8:10'da, dizinin içindeki bireysel elemanların yeni bir dizi oluşturulmadan doğrudan nasıl değiştirilebileceğini gösterir ve bunun içinde değişmezlik içinde değiştirilebilirliği açıklar. Değiştirilecek elemanın indeksi, cheeses dizi değişkeninden sonra köşeli parantezler içinde geçilir:

cheeses[0] = "Roquefort";
cheeses[0] = "Roquefort";

Bu, 0 indeksindeki 'Brie' dizi elemanını yeni değer 'Roquefort' ile değiştirecek.

Peynir Listesini Güncelleme: Yeni Girdileri Yönetme (8:46)

Layla, mevcut bir listeye değerler ekleyebileceğimizi açıklar. Bu, mevcut değerleri ve yeni değeri almayı, her ikisini de içeren yeni bir dizi oluşturmayı ve referansımızı bu yeni diziye yönlendirmeyi içerir. Aşağıdaki kod bunun nasıl çalıştığını gösteriyor:

var favouriteCheese = Console.ReadLine();

bool containsFavourite = false;

foreach (var cheese in cheeses)
{
    if (favouriteCheese == cheese)
    {
        containsFavourite = true;
    }
}

if (!containsFavourite)
{
    cheeses = cheeses.Append(favouriteCheese).ToArray();
}
var favouriteCheese = Console.ReadLine();

bool containsFavourite = false;

foreach (var cheese in cheeses)
{
    if (favouriteCheese == cheese)
    {
        containsFavourite = true;
    }
}

if (!containsFavourite)
{
    cheeses = cheeses.Append(favouriteCheese).ToArray();
}

Bu örnek, peynirin listede zaten olup olmadığını kontrol etmek için basit dizi işlemleri ve foreach döngüsü kullanarak süreci basit bir şekilde gösterir. Eğer değilse, Layla onu 13:33'te System.Linq üzerinden Append metodu ile diziye ekler.

Layla, 13:50'de, kodun hata verdiğini çünkü cheeses ve Append sonucunun farklı tiplerde olduğunu söyler. Append, koleksiyonlar için bir arayüz olan bir IEnumerable döndürür. Bunu çözmek için, IEnumerable bir diziye dönüştürüp cheeses tekrar atayıp ToArray() metodunu kullanırız. Layla, sarı dalgalı çizginin, olası sorunları belirten bir derleyici uyarısı olduğunu, favouriteCheese gibi null olabileceğini ancak bu demoda güvenlik kontrollerini göz ardı ettiğimizi belirtir.

Peynir Listesini Güncelleme ve Basma

Layla, dizimize yeni bir öğe eklediğimizde, güncellenmiş listeyi ekrana basmamız gerektiğini açıklar. Bunu başarmak için, her bir elemanı ve indeksini, dizinin şimdi daha fazla öğe içerdiğini göstermek amacıyla yazdıran bir for döngüsü kullanırız.

Console.WriteLine("The new list:");

for (var i = 0; i < cheeses.Length; i++)
{
    Console.WriteLine(i + " " + cheeses[i]);
}

Console.WriteLine($"Here is a lump of {favouriteCheese} cheese!");
Console.WriteLine("The new list:");

for (var i = 0; i < cheeses.Length; i++)
{
    Console.WriteLine(i + " " + cheeses[i]);
}

Console.WriteLine($"Here is a lump of {favouriteCheese} cheese!");

Bu, C#'ta dizilerin dinamik doğasını gösterir ve nasıl yeni elemanlar ekleyip dizinin içeriğini basarak doğrulayabileceğimizi gösterir.

Layla daha sonra, yeni eklenmiş peyniri (15:19'da) göstermek için uygulamayı çalıştırır:

Understanding Csharp Arrays 3 related to Peynir Listesini Güncelleme ve Basma

Nesne Dizileri ile Geliştirme

Anlayışı genişletmek için, Layla, Name ve Strength özelliklerine sahip bir Cheese sınıfı oluşturarak nesnelerin dizilerini tanıtır (16:14). Daha sonra dizi nesneleri oluşturmak için string listesini değiştirir ve yineleme sırasında nesneler içindeki özelliklere nasıl erişileceğini gösterir (17:46).

class Cheese
{
    public string Name { get; set; }
    public int Strength { get; set; }

    public Cheese(string name, int strength)
    {
        Name = name;
        Strength = strength;
    }
}

Cheese[] cheeses = new Cheese[]
{
    new Cheese("Stilton", 3),
    new Cheese("Cheddar", 2),
    new Cheese("Pineapple", 1),
    new Cheese("Brie", 2)
};

cheeses[0] = new Cheese("Roquefort", 4);
class Cheese
{
    public string Name { get; set; }
    public int Strength { get; set; }

    public Cheese(string name, int strength)
    {
        Name = name;
        Strength = strength;
    }
}

Cheese[] cheeses = new Cheese[]
{
    new Cheese("Stilton", 3),
    new Cheese("Cheddar", 2),
    new Cheese("Pineapple", 1),
    new Cheese("Brie", 2)
};

cheeses[0] = new Cheese("Roquefort", 4);

Bu bölüm, dizilerin karmaşık veri yapılarını nasıl kapsayabileceği konusunda temel bir anlayış sağlar, programlamada esneklik ve güç sunar.

Peynir Nesnesini Döngülerde Kullanma

Layla, güncellenmiş listenin tüm öğelerini ekrana nasıl basacağını gösterir. Bu senaryoda her peynir, Name ve Strength özelliklerine sahip bir nesne olarak temsil edilir. for döngüsü, her yinelemenin doğrudan tek bir dizi elemanını işlediği Cheese nesnelerinin oluşturduğu diziyi yineler.

for (int i = 0; i < cheeses.Length; i++)
{
    Console.WriteLine($"{cheeses[i].Name}, Strength: {cheeses[i].Strength}");
}
for (int i = 0; i < cheeses.Length; i++)
{
    Console.WriteLine($"{cheeses[i].Name}, Strength: {cheeses[i].Strength}");
}

Bu döngü, cheeses dizisinde saklanan Cheese nesnelerinin özelliklerine erişimi basitleştirir. Layla, saat 20:34'te, programı çalıştırır ve çıktı şu şekildedir:

Understanding Csharp Arrays 4 related to Peynir Nesnesini Döngülerde Kullanma

Sonuç

Sonuç olarak, Layla Porter'ın C# dizileri ve döngüleri üzerine olan eğitimi, bu temel kavramları anlamak için yeni başlayanlar için sağlam bir temel sağlar. Dizileri ve çeşitli döngü yapıları üzerinde ustalaşarak, gelecekteki C# geliştiricileri, veri yapılarını etkin bir şekilde manipüle edebilir ve programlarında koleksiyonlar arasında yineleme yapabilir. Bu temelleri anlamak, daha karmaşık uygulamalar oluşturmak ve C# programlamasının daha ileri yönlerini keşfetmek için kritik öneme sahiptir.

Layla'nın örneklerini ve açıklamalarını takip ederek, yeni başlayanlar, kendi C# projelerinde dizileri ve döngüleri etkili bir şekilde kullanma konusunda güven kazanabilirler. C# koleksiyonları ve gelişmiş iki boyutlu ve düzensiz diziler üzerine daha kapsamlı bir kapsama için, öğrenenlerin sonraki eğitici videoları ve pratik egzersizleri keşfetmeleri teşvik ediliyor.

Hero Worlddot related to C# Dizilerini Anlamak
Hero Affiliate related to C# Dizilerini Anlamak

Sevdiğiniz Şeyleri Paylaşarak Daha Fazla Kazanın

.NET, C#, Java, Python veya Node.js ile çalışan geliştiriciler için içerik oluşturuyor musunuz? Uzmanlığınızı ek gelire dönüştürün!

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara