Genel liste türünü kullanarak veri koleksiyonlarını yönetmeyi öğrenin
Bu öğreticide C# kodunu yazmak ve kodunuzu derlemenin ve çalıştırmanın sonuçlarını görmek için tarayıcınızı kullanarak C# dilini etkileşimli olarak kullanmayı öğretir. Koleksiyonları ve dizileri oluşturan, değiştiren ve keşfeden bir dizi ders içerir.
İpucu
Odak moduna bir kod parçacığı yapıştırmak için klavye kısayolunuzu (Ctrl + v veya cmd + v) kullanmanız gerekir.
Liste oluşturma
Etkileşimli pencerede aşağıdaki kodu çalıştırın. Odak moduna gir düğmesini seçin. Ardından, etkileşimli pencereye aşağıdaki kod bloğunu yazın (adınızla değiştirin<name>
) ve Çalıştır'ı seçin:
var names = new List<string> { "<name>", "Ana", "Felipe" };
foreach (var name in names)
{
Console.WriteLine($"Hello {name.ToUpper()}!");
}
Bunu ortamınızda çalıştırıyorsanız, bunun yerine yerel sürümle ilgili yönergeleri izlemeniz gerekir.
Bir dize listesi oluşturdunuz, bu listeye üç ad eklediniz ve adları tüm CAPS'lerde yazdırdıysanız. Listede döngü yapmak için önceki öğreticilerde öğrendiğiniz kavramları kullanıyorsunuz.
Adların görüntüleneceği kod, dize ilişkilendirme özelliğini kullanır. karakterinin string
$
önüne geçtiğinizde, dize bildirimine C# kodu ekleyebilirsiniz. Gerçek dize, C# kodunu oluşturduğu değerle değiştirir. Bu örnekte, yöntemini çağırdığınız String.ToUpper için öğesini büyük harflere dönüştürülen her adla değiştirir{name.ToUpper()}
.
Keşfetmeye devam edelim.
Liste içeriğini değiştirme
Oluşturduğunuz koleksiyon türünü List<T> kullanır. Bu tür, öğe dizilerini depolar. Köşeli ayraçlar arasındaki öğelerin türünü belirtirsiniz.
Bu List<T> türün önemli özelliklerinden biri, öğelerin eklenmesini veya kaldırılmasını sağlayarak büyüyebilmesi veya küçülebilmesidir. İçeriğini görüntüledikten sonra içeriği değiştirerek sonuçları görebilirsiniz. Daha önce yazdığınız kodun altına aşağıdaki kodu ekleyin (içeriği yazdıran döngünün altına):
Console.WriteLine();
names.Add("Maria");
names.Add("Bill");
names.Remove("Ana");
foreach (var name in names)
{
Console.WriteLine($"Hello {name.ToUpper()}!");
}
Listenin sonuna iki ad daha eklediniz. Ayrıca bir tane de kaldırdınız. Bu kod bloğunun çıkışında ilk içerik gösterilir, ardından boş bir satır ve yeni içerik yazdırılır.
, List<T> tek tek öğelere dizine göre de başvurmanızı sağlar. ve ]
belirteçlerini kullanarak öğelere [
erişebilirsiniz. Daha önce yazdığınız kodun altına aşağıdaki kodu ekleyin ve deneyin:
Console.WriteLine($"My name is {names[0]}.");
Console.WriteLine($"I've added {names[2]} and {names[3]} to the list.");
Listenin sonundan sonra erişmenize izin verilmiyor. Listenin özelliğini ne kadar süreyle kullandığını Count de kontrol edebilirsiniz. Denemek için aşağıdaki kodu ekleyin:
Console.WriteLine($"The list has {names.Count} people in it");
Sonuçları görmek için yeniden Çalıştır'ı seçin. C# dilinde dizinler 0'dan başlar, bu nedenle en büyük geçerli dizin listedeki öğe sayısından bir küçüktür.
Liste arama ve sıralama
Örneklerimiz görece küçük listeler kullanıyor, ancak uygulamalarınız genellikle çok daha fazla öğe içeren listeler oluşturabilir ve bazen binleri de sayabilir. Bu büyük koleksiyonlardaki öğeleri bulmak için listede farklı öğeler aramanız gerekir. IndexOf yöntemi bir öğeyi arar ve öğenin dizinini döndürür. Öğe listede değilse, IndexOf
döndürür -1
. Nasıl çalıştığını görmek için deneyin. Şu ana kadar yazdıklarının altına aşağıdaki kodu ekleyin:
var index = names.IndexOf("Felipe");
if (index != -1)
{
Console.WriteLine($"The name {names[index]} is at index {index}");
}
var notFound = names.IndexOf("Not Found");
Console.WriteLine($"When an item is not found, IndexOf returns {notFound}");
Listede bir öğe olup olmadığını bilmiyor olabilirsiniz, bu nedenle tarafından IndexOfdöndürülen dizini her zaman denetlemeniz gerekir. ise -1
, öğe bulunamadı.
Listenizdeki öğeler de sıralanabilir. yöntemi listedeki Sort tüm öğeleri normal düzenlerinde sıralar (dizeler için alfabetik olarak). Bu kodu ekleyin ve yeniden çalıştırın:
names.Sort();
foreach (var name in names)
{
Console.WriteLine($"Hello {name.ToUpper()}!");
}
Diğer tür listeleri
Şu ana kadar listelerde string
türünü kullanıyordunuz. Şimdi farklı bir tür kullanarak bir List<T> oluşturalım. Şimdi bir sayı kümesi oluşturalım. Şimdiye kadar yazdığınız kodu silin ve aşağıdaki kodla değiştirin:
var fibonacciNumbers = new List<int> {1, 1};
Bu, bir tamsayı listesi oluşturur ve ilk iki tamsayıyı 1 değerine ayarlar. Bir sayı dizisi olan Fibonacci Dizisi iki 1 ile başlar. Sonraki her Fibonacci sayısı, önceki iki sayının toplamı alınarak bulunur. Şu kodu ekleyin:
var previous = fibonacciNumbers[fibonacciNumbers.Count - 1];
var previous2 = fibonacciNumbers[fibonacciNumbers.Count - 2];
fibonacciNumbers.Add(previous + previous2);
foreach(var item in fibonacciNumbers)
{
Console.WriteLine(item);
}
Sonuçları görmek için Çalıştır'a basın;
Sınama
Bu ve önceki derslerden bazı kavramları bir araya getirip birleştiremediğiniz konusuna bakın. Fibonacci Numbers ile şimdiye kadar derlediğiniz şeyi genişletin. Dizideki ilk 20 sayıyı oluşturmak için kodu yazmayı deneyin. (İpucu olarak, 20. Fibonacci sayısı 6765'tir.)
Görevi tamamlama
Şunun gibi bir şeyle karşılaştınız mı?
var fibonacciNumbers = new List<int> {1, 1};
while (fibonacciNumbers.Count < 20)
{
var previous = fibonacciNumbers[fibonacciNumbers.Count - 1];
var previous2 = fibonacciNumbers[fibonacciNumbers.Count - 2];
fibonacciNumbers.Add(previous + previous2);
}
foreach(var item in fibonacciNumbers)
{
Console.WriteLine(item);
}
Döngünün her yinelemesinde listedeki son iki tamsayıyı alır, bunları toplar ve bu değeri listeye eklersiniz. Döngü, listeye 20 öğe ekleyene kadar yineleniyor.
Tebrikler!
Etkileşimli öğretici listesini tamamladınız. Bu, C# etkileşimli öğreticisine son giriş niteliğindedir. .NET SDK'sını indirmek, makinenizde bir proje oluşturmak ve kodlamaya devam etmek için .NET sitesini ziyaret edebilirsiniz. "Sonraki adımlar" bölümü sizi bu öğreticilere geri getirir.
.NET koleksiyonları hakkında daha fazla bilgiyi aşağıdaki makalelerde bulabilirsiniz:
Bu bölümle ilgili bir sorununuz mu var? Öyleyse bu bölümü iyileştirebilmemiz için lütfen geri bildirimde bulunun.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin