
C# Liste (Geliştiriciler İçin Nasıl Çalışır)
Listeler, C# içinde veri koleksiyonlarını saklamak ve manipüle etmek için kullanılan, çok yönlü ve dinamik veri yapılarıdır. Bunlar, güçlü, tür güvenli koleksiyon sınıfları ve güçlü türde nesneler sağlayan System.Collections.Generic isim alanının bir parçasıdır. Bu başlangıç seviyesi dostu eğitim, C# Listeleri'ni kullanmanın temelleri, eleman ekleme/oluşturma, belirli indekslere veya ilk meydana gelmelerine erişme, belirtilen elemanları değiştirme ve elemanları kaldırma gibi yaygın kullanımları size rehberlik edecektir.
Listeler Oluşturma
List sınıfını kullanmaya başlamak için önce System.Collections.Generic isim alanını kodunuza dahil etmelisiniz:
using System.Collections.Generic;Imports System.Collections.GenericGenel isim alanını ekledikten sonra, içerisindeki tüm elemanların veri türünü açısal parantezler (< >) içinde belirterek yeni bir List nesnesi oluşturun. İşte bir tamsayı listesi oluşturma örneği:
List<int> numbers = new List<int>();Dim numbers As New List(Of Integer)()Bazı başlangıç değerleriyle bir liste başlatabilir veya şu şekilde belirtilen koleksiyon ile tanımlayabilirsiniz:
List<string> fruits = new List<string> { "apple", "banana", "cherry" };Dim fruits As New List(Of String) From {"apple", "banana", "cherry"}Listenin varsayılan başlangıç kapasitesini de belirtebiliriz. Belirtilen başlangıç kapasitesi, listenin varsayılan maksimum kapasitesidir.
Listenin Yöntemleri
Bir Listeye Eleman Sayısı Ekleme
List'e eleman eklemek için Add() metodunu kullanın:
numbers.Add(1); // Adds first element
numbers.Add(2);
numbers.Add(3);numbers.Add(1) ' Adds first element
numbers.Add(2)
numbers.Add(3)Belirtilen bir koleksiyondan bir dizi elemanı listeye eklemek için AddRange metodunu kullanabilirsiniz:
List<int> moreNumbers = new List<int> { 4, 5, 6 };
numbers.AddRange(moreNumbers);Dim moreNumbers As New List(Of Integer) From {4, 5, 6}
numbers.AddRange(moreNumbers)Liste Elemanlarına Erişim
Bir dizide olduğu gibi, bir indeks kullanarak bir listenin bireysel elemanlarına erişebilirsiniz:
string firstFruit = fruits[0]; // "apple"
string secondFruit = fruits[1]; // "banana"Dim firstFruit As String = fruits(0) ' "apple"
Dim secondFruit As String = fruits(1) ' "banana"Listelerin sıfır tabanlı indekslendiğini unutmayın, bu nedenle ilk elemanın indeks değeri 0'dır. Yukarıdaki örnek, var olduğu takdirde elemanı stringe depolar.
Liste Elemanlarını Değiştirme
Bir listedeki elemanı değiştirmek için istenen indeksteki elemana yeni bir değer atayın, sıfır tabanlı indeksi göz önünde bulundurarak:
fruits[1] = "blueberry";fruits(1) = "blueberry"Şimdi, meyveler listesindeki ikinci eleman 'muz' yerine 'yabanmersini'.
Bir Listeden Eleman Çıkarma
Bir elemanı listeden çıkarmak için, belirtilen elemanın ilk gerçekleşimini kaldıran Remove metodunu kullanabilirsiniz:
fruits.Remove("apple");fruits.Remove("apple")Alternatif olarak, belirtilen dizindeki bir elemanı kaldırmak için RemoveAt metodunu kullanabilirsiniz:
fruits.RemoveAt(0);fruits.RemoveAt(0)Listeyi tüm elemanlardan temizlemek için Clear metodunu kullanın:
fruits.Clear();fruits.Clear()Bir Listede Eleman Bulma
Bir listenin belirli bir eleman içerip içermediğini kontrol etmek için Contains() metodunu kullanabilirsiniz:
bool containsApple = fruits.Contains("apple"); // trueDim containsApple As Boolean = fruits.Contains("apple") ' trueBir elemanın ilk gerçekleşiminin dizinini (index) bulmak için IndexOf metodunu kullanın:
int appleIndex = fruits.IndexOf("apple"); // 0Dim appleIndex As Integer = fruits.IndexOf("apple") ' 0Eğer eleman bulunamazsa, IndexOf -1 değerini döndürür.
Bir Listede Döngü Yapma
Listedeki elemanları dolaşmak için bir foreach döngüsü kullanabilirsiniz:
foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}For Each fruit As String In fruits
Console.WriteLine(fruit)
Next fruitAlternatif olarak, listenin içindeki eleman sayısını döndüren Count özelliği ile bir for döngüsü kullanabilirsiniz:
for (int i = 0; i < fruits.Count; i++)
{
Console.WriteLine(fruits[i]);
}For i As Integer = 0 To fruits.Count - 1
Console.WriteLine(fruits(i))
Next iBir Listeyi Sıralama
Bir listeyi artan sıraya göre sıralamak için Sort metodunu kullanın:
List<int> unsortedNumbers = new List<int> { 5, 2, 8, 1, 4 };
unsortedNumbers.Sort();
// Now, unsortedNumbers is { 1, 2, 4, 5, 8 }Dim unsortedNumbers As New List(Of Integer) From {5, 2, 8, 1, 4}
unsortedNumbers.Sort()
' Now, unsortedNumbers is { 1, 2, 4, 5, 8 }Bir listeyi azalan sıraya göre sıralamak için, özel bir karşılaştırma ile Sort metodunu kullanabilirsiniz:
unsortedNumbers.Sort((a, b) => b.CompareTo(a));
// Now, unsortedNumbers is { 8, 5, 4, 2, 1 }unsortedNumbers.Sort(Function(a, b) b.CompareTo(a))
' Now, unsortedNumbers is { 8, 5, 4, 2, 1 }Daha karmaşık sıralamalar için, özel bir IComparer sınıfı uygulayabilir veya LINQ (Language Integrated Query) kullanabilirsiniz. İkili arama algoritması sıralanmış listeler üzerinde çalışır.
Listeler ile LINQ Kullanımı
LINQ, koleksiyonlar üzerinde güçlü sorgular ve dönüşümler yapmanıza olanak tanır, bunlar arasında listeler de vardır. LINQ kullanmak için, önce System.Linq isim alanını kodunuza dahil etmelisiniz:
using System.Linq;Imports System.Linqİşte bir liste üzerinde LINQ sorgularının bazı örnekleri:
Bir listeyi filtreleme
List<int> evenNumbers = numbers.Where(x => x % 2 == 0).ToList();Dim evenNumbers As List(Of Integer) = numbers.Where(Function(x) x Mod 2 = 0).ToList()Bir Listedeki Öğeleri Dönüştürme (mapleme)
List<string> fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();Dim fruitNamesUpperCase As List(Of String) = fruits.Select(Function(x) x.ToUpper()).ToList()Bir Listede Minimum ve Maksimum Değerleri Bulma
int minValue = numbers.Min();
int maxValue = numbers.Max();Dim minValue As Integer = numbers.Min()
Dim maxValue As Integer = numbers.Max()Bir Listeyi Diziye Dönüştürme
Bir listeyi bir diziye dönüştürmek için ToArray metodunu kullanabilirsiniz:
int[] numbersArray = numbers.ToArray();Dim numbersArray() As Integer = numbers.ToArray()IronPDF kullanarak List Veri Gönderimi
Bu bölümde, bir liste verisini IronPDF kütüphanesi kullanarak bir PDF dosyasına nasıl aktaracağımızı göstereceğiz. Bu, rapor oluşturmak veya verilerinizin yazdırılabilir bir versiyonunu üretmek istediğinizde faydalı olabilir.
Öncelikle, IronPDF NuGet paketini projenize indirip yükleyin:
Sonra, kodunuza IronPdf isim alanını dahil edin:
using IronPdf;Imports IronPdfŞimdi, bir dizgi List'sini bir HTML tablosuna dönüştüren ve sonra bunu bir PDF dosyasına aktaran basit bir fonksiyon yaratalım:
using System.Collections.Generic;
using System.Text;
using IronPdf;
void ExportListToPdf(List<string> data, string pdfFilePath)
{
// Create an HTML table from the list data
StringBuilder htmlBuilder = new StringBuilder();
htmlBuilder.Append("<table><tr><th>Item</th></tr>");
foreach (string item in data)
{
htmlBuilder.Append($"<tr><td>{item}</td></tr>");
}
htmlBuilder.Append("</table>");
// Convert the HTML table to a PDF using IronPDF
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
// Save the PDF to the specified file path
pdf.SaveAs(pdfFilePath);
}Imports System.Collections.Generic
Imports System.Text
Imports IronPdf
Private Sub ExportListToPdf(ByVal data As List(Of String), ByVal pdfFilePath As String)
' Create an HTML table from the list data
Dim htmlBuilder As New StringBuilder()
htmlBuilder.Append("<table><tr><th>Item</th></tr>")
For Each item As String In data
htmlBuilder.Append($"<tr><td>{item}</td></tr>")
Next item
htmlBuilder.Append("</table>")
' Convert the HTML table to a PDF using IronPDF
Dim renderer = New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlBuilder.ToString())
' Save the PDF to the specified file path
pdf.SaveAs(pdfFilePath)
End SubBu işlevi kullanmak için tek yapmanız gereken, listenizi ve istenen PDF dosya yolunu çağırmaktır:
List<string> fruits = new List<string> { "apple", "banana", "cherry" };
ExportListToPdf(fruits, "Fruits.pdf");Dim fruits As New List(Of String) From {"apple", "banana", "cherry"}
ExportListToPdf(fruits, "Fruits.pdf")Bu, IronPDF ile HTML'i PDF'e dönüştürerek meyveler listesini içeren bir tabloyla "Fruits.pdf" adında bir PDF dosyası oluşturacaktır. HTML tablosuna özel stil eklemek veya PDF'ye ek içerik eklemek gibi ihtiyaçlarınıza uygun şekilde ExportListToPdf fonksiyonunu değiştirebilirsiniz.

Sonuç
Bu yeni başlayanlar için uygun eğitimde, C# Listelerini kullanmanın temellerini ele aldık ve List verilerini PDF dosyasına aktaracak şekilde IronPDF'i nasıl entegre edeceğimizi gösterdik. Projelerinize IronPDF'i dahil ederek raporlar, faturalar veya diğer yazdırılabilir belgeleri kolaylıkla C# projelerinizden oluşturabilirsiniz.
IronPDF, yeteneklerini satın almadan önce test etmenize olanak tanıyan bir ücretsiz deneme sunar.

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.
İlgili Makaleler


