Altbilgi içeriğine atla
.NET YARDıM

C# Listesi (Geliştiriciler İçin Nasıl Çalışır)

Listeler, C#'ta veri koleksiyonlarını depolamak ve manipüle etmek için kullanılan çok yönlü ve dinamik veri yapılarıdır. Onlar, güçlü, tür güvenli koleksiyon sınıfları ve güçlü türde nesneler sağlayan System.Collections.Generic ad alanının bir parçasıdır. Bu başlangıç dostu öğretici, C# Listelerini kullanmanın temellerini, elemanları nasıl oluşturacağınızı/ekleyeceğinizi, belirli dizinlere veya ilk rastlananlara nasıl erişeceğinizi, belirli elemanları nasıl modifiye edeceğinizi ve elemanları nasıl kaldıracağınızı kapsayacak, ayrıca bazı yaygın kullanım örnekleri sunacaktır.

Listeler Oluşturma

List sınıfını kullanmaya başlamak için ilk olarak kodunuza System.Collections.Generic ad alanını eklemeniz gerekir:

using System.Collections.Generic;
using System.Collections.Generic;
Imports System.Collections.Generic
$vbLabelText   $csharpLabel

Genel ad alanını ekledikten sonra, depolamak istediğiniz tüm öğelerin veri türünü açısal parantez içinde (< >) belirterek yeni bir List nesnesi oluşturun. İşte tam sayılar listesinin nasıl oluşturulacağına dair bir örnek:

List<int> numbers = new List<int>();
List<int> numbers = new List<int>();
Dim numbers As New List(Of Integer)()
$vbLabelText   $csharpLabel

Bazı başlangıç değerleriyle bir listeyi başlatabilir veya belirtilen koleksiyonla bu şekilde tanımlayabilirsiniz:

List<string> fruits = new List<string> { "apple", "banana", "cherry" };
List<string> fruits = new List<string> { "apple", "banana", "cherry" };
Dim fruits As New List(Of String) From {"apple", "banana", "cherry"}
$vbLabelText   $csharpLabel

Listenin varsayılan başlangıç kapasitesini de belirleyebilirsiniz. Belirtilen başlangıç kapasitesi, listenin varsayılan maksimum kapasitesidir.

Liste Metotları

Bir Listeye Eleman Sayısı Ekleme

Listenize öğeler eklemek için Add() yöntemini 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);
numbers.Add(1) ' Adds first element
numbers.Add(2)
numbers.Add(3)
$vbLabelText   $csharpLabel

Belirtilen bir koleksiyondan bir dizi öğeyi listeye eklemek için de AddRange yöntemini kullanabilirsiniz:

List<int> moreNumbers = new List<int> { 4, 5, 6 };
numbers.AddRange(moreNumbers);
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)
$vbLabelText   $csharpLabel

Liste Elemanlarına Erişim

Dizilerde olduğu gibi, bir indis kullanarak bir listenin bireysel elemanlarına erişebilirsiniz:

string firstFruit = fruits[0];          // "apple"
string secondFruit = fruits[1];         // "banana"
string firstFruit = fruits[0];          // "apple"
string secondFruit = fruits[1];         // "banana"
Dim firstFruit As String = fruits(0) ' "apple"
Dim secondFruit As String = fruits(1) ' "banana"
$vbLabelText   $csharpLabel

Unutmayın ki listeler sıfır tabanlıdır, bu yüzden ilk elemanın indeksi 0'dır. Yukarıdaki örnek, eleman dizgide varsa, onu depolayacaktır.

Liste Elemanlarını Değiştirme

Bir listedeki elemanı değiştirmek için, sıfır tabanlı indeksi dikkate alarak istediğiniz indeksteki elemana yeni bir değer atayın:

fruits[1] = "blueberry";
fruits[1] = "blueberry";
fruits(1) = "blueberry"
$vbLabelText   $csharpLabel

Şimdi, meyve listesindeki ikinci eleman "mavi yemiş" olacaktır, "muz" yerine.

Listeden Elemanlar Kaldırma

Bir listeden bir öğeyi kaldırmak için, belirtilen öğenin ilk karşılaşmasını kaldıran Remove yöntemini kullanabilirsiniz:

fruits.Remove("apple");
fruits.Remove("apple");
fruits.Remove("apple")
$vbLabelText   $csharpLabel

Alternatif olarak, belirtilen indeksteki bir öğeyi kaldırmak için RemoveAt yöntemini kullanabilirsiniz:

fruits.RemoveAt(0);
fruits.RemoveAt(0);
fruits.RemoveAt(0)
$vbLabelText   $csharpLabel

Bir listeden tüm öğeleri kaldırmak için Clear yöntemini kullanın:

fruits.Clear();
fruits.Clear();
fruits.Clear()
$vbLabelText   $csharpLabel

Listede Eleman Bulma

Belirli bir öğenin listede bulunup bulunmadığını kontrol etmek için Contains() yöntemini kullanabilirsiniz:

bool containsApple = fruits.Contains("apple");  // true
bool containsApple = fruits.Contains("apple");  // true
Dim containsApple As Boolean = fruits.Contains("apple") ' true
$vbLabelText   $csharpLabel

Bir öğenin ilk karşılaşmasının indeksini bulmak için IndexOf yöntemini kullanın:

int appleIndex = fruits.IndexOf("apple");  // 0
int appleIndex = fruits.IndexOf("apple");  // 0
Dim appleIndex As Integer = fruits.IndexOf("apple") ' 0
$vbLabelText   $csharpLabel

Eğer öğe bulunamazsa, IndexOf -1 döndürür.

Listede Döngü Yapma

Listedeki öğeler arasında dolaşmak için foreach döngüsünü kullanabilirsiniz:

foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}
foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}
For Each fruit As String In fruits
	Console.WriteLine(fruit)
Next fruit
$vbLabelText   $csharpLabel

Alternatif olarak, listede bulunan öğe sayısını döndüren Count özelliği ile bir for döngüsünü kullanabilirsiniz:

for (int i = 0; i < fruits.Count; i++)
{
    Console.WriteLine(fruits[i]);
}
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 i
$vbLabelText   $csharpLabel

Listeyi Sıralama

Bir listeyi artan sırayla sıralamak için Sort yöntemini kullanın:

List<int> unsortedNumbers = new List<int> { 5, 2, 8, 1, 4 };
unsortedNumbers.Sort();

// Now, unsortedNumbers is { 1, 2, 4, 5, 8 }
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 }
$vbLabelText   $csharpLabel

Bir listeyi azalan sırayla sıralamak için özel bir karşılaştırma ile Sort yöntemini kullanabilirsiniz:

unsortedNumbers.Sort((a, b) => b.CompareTo(a));

// Now, unsortedNumbers is { 8, 5, 4, 2, 1 }
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 }
$vbLabelText   $csharpLabel

Daha karmaşık sıralamalar için, özel bir IComparer sınıfı uygulayabilir veya LINQ (Dil Entegre Sorgusu) kullanabilirsiniz. İkili arama algoritması sıralı listelerde çalışır.

Listelerle LINQ Kullanma

LINQ, listeler dahil koleksiyonlar üzerinde güçlü sorgular ve dönüşümler yapmanızı sağlar. LINQ kullanmak için önce kodunuza System.Linq ad alanını eklemeniz gerekir:

using System.Linq;
using System.Linq;
Imports System.Linq
$vbLabelText   $csharpLabel

Bir listedeki LINQ sorgularına bazı örnekler:

Bir listeyi filtreleme

List<int> evenNumbers = numbers.Where(x => x % 2 == 0).ToList();
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()
$vbLabelText   $csharpLabel

Listede Elemanları Dönüştürme (Mapleme)

List<string> fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();
List<string> fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();
Dim fruitNamesUpperCase As List(Of String) = fruits.Select(Function(x) x.ToUpper()).ToList()
$vbLabelText   $csharpLabel

Bir Listedeki Minimum ve Maksimum Değerleri Bulma

int minValue = numbers.Min();
int maxValue = numbers.Max();
int minValue = numbers.Min();
int maxValue = numbers.Max();
Dim minValue As Integer = numbers.Min()
Dim maxValue As Integer = numbers.Max()
$vbLabelText   $csharpLabel

Bir Listeyi Diziye Dönüştürme

Bir listeyi diziye dönüştürmek için ToArray yöntemini kullanabilirsiniz:

int[] numbersArray = numbers.ToArray();
int[] numbersArray = numbers.ToArray();
Dim numbersArray() As Integer = numbers.ToArray()
$vbLabelText   $csharpLabel

Veri Listesini IronPDF Kullanarak Bir PDF'e Aktarma

Bu bölümde, bir List'teki verileri IronPDF kütüphanesi kullanarak bir PDF dosyasına nasıl aktarabileceğinizi göstereceğiz. Bu, verilerinizin bir raporunu veya yazdırılabilir bir sürümünü oluşturmak istediğinizde faydalı olabilir.

Öncelikle, projenize IronPDF NuGet paketini indirip kurun:

Install-Package IronPdf

Sonraki adım olarak kodunuza IronPdf ad alanını ekleyin:

using IronPdf;
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

Şimdi, bir dize List'sini HTML tablosuna çeviren ve ardından bir PDF dosyasına dışa aktaran basit bir fonksiyon oluşturalı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);
}
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 Sub
$vbLabelText   $csharpLabel

Bu fonksiyonu kullanmak için, yalnızca listenizi ve istediğiniz PDF dosya yolunu vererek çağırmanız yeterlidir:

List<string> fruits = new List<string> { "apple", "banana", "cherry" };
ExportListToPdf(fruits, "Fruits.pdf");
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")
$vbLabelText   $csharpLabel

Bu, IronPDF ile HTML'yi PDF'ye dönüştürerek meyve listesini içeren bir tabloyu "Meyveler.pdf" adlı bir PDF dosyası oluşturacaktır. HTML tablosuna özel stil eklemek veya PDF'ye ek içerik eklemek gibi ihtiyaçlarınızı karşılayacak şekilde ExportListToPdf işlevini değiştirebilirsiniz.

C# List (Geliştiriciler İçin Nasıl Çalışır) Şekil 1 - HTML'den PDF'e

Sonuç

Bu başlangıç dostu öğreticide, C# Listelerini kullanmanın temellerini ele aldık ve Liste verilerini bir PDF dosyasına aktarmak için IronPDF'yi nasıl entegre edeceğinizi gösterdik. Projelerinize IronPDF'yi dahil ederek C# projelerinizden kolayca raporlar, faturalar veya diğer yazdırılabilir belgeler üretebilirsiniz.

IronPDF ücretsiz bir deneme sürümü sunar, bu size satın almadan önce yeteneklerini test etme imkanı tanır.

Sıkça Sorulan Sorular

C#'da bir Listeyi nasıl oluşturabilirim?

C#'da bir Liste oluşturmak için System.Collections.Generic namespace'ini dahil etmeniz gerekir. Daha sonra veri türünü köşe ayraçları içinde belirterek bir Liste tanımlayabilirsiniz. Örneğin: List sayılar = new List();

Bir C# Listesine eleman eklemek için kullanılan yöntemler nelerdir?

Elemanlar, tek tek elemanlar için Add() yöntemi kullanılarak ve bir eleman koleksiyonu eklemek için AddRange() kullanılarak bir C# Listesine eklenebilir.

Bir C# Listesini bir PDF dosya olarak nasıl dışa aktarabilirim?

Bir C# Listesini bir PDF dosya olarak dışa aktarmak için IronPDF kütüphanesini kullanabilirsiniz. Liste verinizi HTML tablo formatına dönüştürün ve ardından IronPDF kullanarak bir PDF olarak render edin.

Bir C# Listesini sıralamanın en iyi yolu nedir?

Bir C# Listesini artan sırada sıralamak için Sort() yöntemini kullanabilirsiniz. Azalan sırada sıralamak için Sort() ile özel bir karşılaştırma temsilcisi kullanabilirsiniz.

Bir C# Listesi içindeki elemanlar nasıl erişilir?

Bir C# Listesi içindeki elemanlar, dizilerde olduğu gibi indekslerini kullanarak erişilebilir. Listeler sıfır tabanlı indekslidir, bu nedenle bir elemanın Listede ki konumunu kullanarak ona erişebilirsiniz.

Bir C# Listesinden elemanları çıkarmak için hangi seçenekler mevcuttur?

Belirli elemanlar için Remove() yöntemi, belirli bir indeks için RemoveAt() veya tüm elemanları çıkarmak için Clear() kullanarak bir C# Listesinden elemanları çıkarabilirsiniz.

C# Listeleriyle LINQ nasıl kullanılır?

LINQ, filtreleme, eşleme ve minimum veya maksimum değerleri etkin bir şekilde bulma gibi güçlü sorgular ve dönüştürme işlemlerini gerçekleştirmek için C# Listeleri ile kullanılabilir.

Bir List'yi C#'da diziye nasıl dönüştürebilirim?

Bir List'yi C#'da bir diziye dönüştürmek için, listenin elemanlarını içeren yeni bir dizi oluşturacak olan ToArray() yöntemini kullanabilirsiniz.

C# Listeleri için bazı yaygın kullanım durumları nelerdir?

C# Listeleri dinamik veri koleksiyonlarının yönetimi, LINQ ile karmaşık sorgular gerçekleştirme ve IronPDF gibi kütüphaneleri kullanarak raporlar veya belgeler oluşturma için yaygın olarak kullanılır.

C# Listeleri üzerinde elemanlar arasında nasıl döngü yapılır?

Basit yineleme için foreach döngülerini veya indeksi gerektiğinde for döngülerini kullanarak bir C# Listesi üzerinde elemanlar arasında döngü yapabilirsiniz.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Chief Technology Officer

Jacob Mellor, Iron Software'in Teknoloji Müdürü ve C# PDF teknolojisinin öncüsü olan vizyoner bir mühendis. Iron Software’in temel kod tabanının ilk geliştiricisi olarak, şirketin ürün mimarisini kuruluşundan bu yana şekillendirdi ve CEO Cameron Rimington ile birlikte NASA, Tesla ve ...

Daha Fazlasını Oku

Iron Destek Ekibi

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