Menu
Coddy logo textTech

Özet - Özel Liste

Coddy'nin C# Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 40 / 70.

challenge icon

Görev

Kolay

Bu bölümdeki tüm gelişmiş özellikleri (operatör aşırı yükleme, indeksleyiciler, CustomList geçersiz kılma ve genişletme metotları) bir araya getirerek kullanımı doğal ve sezgisel hissettiren bir koleksiyon oluşturacak bir ToString() sınıfı oluşturalım.

Kodunuzu üç dosyaya ayıracaksınız:

  • CustomList.cs: CustomList ad alanında, dahili bir tamsayı dizisini saran ve sezgisel erişim biçimleri sağlayan bir Collections sınıfı oluşturun. Listeniz şunlara sahip olmalıdır:
    • Öğeleri depolamak için özel bir tamsayı dizisi ve kaç öğenin depolandığını takip eden (özel ayarlayıcılı) bir Count özelliği
    • Bir kapasiteyi (tamsayı) kabul eden ve dahili diziyi bu boyuta başlatan bir oluşturucu
    • Yer varsa bir öğeyi bir sonraki kullanılabilir konuma ekleyen Add(int item) metodu
    • Öğelerin konuma göre alınmasına ve ayarlanmasına olanak tanıyan this[int index] indeksleyicisi
    • İki CustomList'i her ikisindeki tüm öğeleri içeren yeni bir listede birleştiren aşırı yüklenmiş bir + operatörü (yeni listenin kapasitesi, her iki sayının toplamı olmalıdır)
    • Öğeleri ToString() biçiminde döndüren geçersiz kılınmış bir [item1, item2, item3] metodu - boş konumları değil, yalnızca Count değerine kadar olan öğeleri dahil edin
  • ListExtensions.cs: ListExtensions ad alanında Collections adlı statik bir sınıf ve CustomList'iniz için bir genişletme metodu oluşturun:
    • Sum() - listedeki tüm öğelerin toplamını döndürür (Count değerine kadar)
  • Program.cs: Ana dosyanızda iki CustomList oluşturun, her birine öğeler ekleyin, ardından tüm özelliklerin birlikte çalıştığını gösterin - öğelere erişmek için indeksleyiciyi kullanın, listeleri + operatörüyle birleştirin, ToString() kullanarak yazdırın ve genişletme metodunuzu kullanarak toplamı hesaplayın.

Altı girdi alacaksınız:

  • İlk listeye eklenecek üç tamsayı
  • İkinci listeye eklenecek üç tamsayı

İlk listeyi 5, ikinci listeyi ise 3 kapasiteyle oluşturun. Üç girdi değerini ilgili listelere ekleyin.

Çıktıyı şu biçimde yazdırın:

List 1: {ToString()}
List 2: {ToString()}
List 1[0]: {first item}
Combined: {ToString() of combined list}
Combined sum: {Sum()}

Örneğin girdiler 10, 20, 30, 5, 15 ve 25 ise çıktı şu şekilde olmalıdır:

List 1: [10, 20, 30]
List 2: [5, 15, 25]
List 1[0]: 10
Combined: [10, 20, 30, 5, 15, 25]
Combined sum: 105

Tüm parçaların nasıl birlikte çalıştığına dikkat edin - indeksleyici dizi benzeri erişim sağlar, + operatörü listeleri doğal biçimde birleştirmenizi sağlar, ToString() okunabilir çıktı sunar ve genişletme metodu yardımcı işlevsellik ekler. İyi tasarlanmış sınıfları kullanmak böyle bir his verir!

Kendin dene

using System;
using Collections;

class Program
{
    public static void Main(string[] args)
    {
        // Altı tam sayı oku
        int a1 = Convert.ToInt32(Console.ReadLine());
        int a2 = Convert.ToInt32(Console.ReadLine());
        int a3 = Convert.ToInt32(Console.ReadLine());
        int b1 = Convert.ToInt32(Console.ReadLine());
        int b2 = Convert.ToInt32(Console.ReadLine());
        int b3 = Convert.ToInt32(Console.ReadLine());

        // TODO: 5 kapasiteli ilk CustomList'i oluştur
        // TODO: a1, a2, a3 değerlerini ilk listeye ekle

        // TODO: 3 kapasiteli ikinci CustomList'i oluştur
        // TODO: b1, b2, b3 değerlerini ikinci listeye ekle

        // TODO: ToString() kullanarak List 1'i yazdır
        // TODO: ToString() kullanarak List 2'yi yazdır
        // TODO: İndeksleyiciyi kullanarak List 1[0] değerini yazdır
        // TODO: + operatörünü kullanarak listeleri birleştir ve sonucu yazdır
        // TODO: Sum() genişletme metodunu kullanarak birleştirilmiş listenin toplamını yazdır
    }
}

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online C# derleyicisi