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

C# Listesi (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;
using System.Collections.Generic;
Imports System.Collections.Generic
$vbLabelText   $csharpLabel

Genel 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>();
List<int> numbers = new List<int>();
Dim numbers As New List(Of Integer)()
$vbLabelText   $csharpLabel

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" };
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 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);
numbers.Add(1) ' Adds first element
numbers.Add(2)
numbers.Add(3)
$vbLabelText   $csharpLabel

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);
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

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"
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

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";
fruits(1) = "blueberry"
$vbLabelText   $csharpLabel

Ş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");
fruits.Remove("apple")
$vbLabelText   $csharpLabel

Alternatif olarak, belirtilen dizindeki bir elemanı kaldırmak için RemoveAt metodunu kullanabilirsiniz:

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

Listeyi tüm elemanlardan temizlemek için Clear metodunu kullanın:

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

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");  // true
bool containsApple = fruits.Contains("apple");  // true
Dim containsApple As Boolean = fruits.Contains("apple") ' true
$vbLabelText   $csharpLabel

Bir elemanın ilk gerçekleşiminin dizinini (index) bulmak için IndexOf metodunu 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 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);
}
foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}
For Each fruit As String In fruits
	Console.WriteLine(fruit)
Next fruit
$vbLabelText   $csharpLabel

Alternatif 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 (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

Bir 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 }
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ı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((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 (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;
using System.Linq;
Imports System.Linq
$vbLabelText   $csharpLabel

İşte bir liste üzerinde LINQ sorgularının bazı örnekleri:

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

Bir Listedeki Öğeleri 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 Listede 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 bir diziye dönüştürmek için ToArray metodunu kullanabilirsiniz:

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

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:

Install-Package IronPdf

Sonra, kodunuza IronPdf isim alanını dahil edin:

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

Ş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);
}
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 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");
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'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.

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

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.

Sıkça Sorulan Sorular

C#'ta bir Liste nasıl oluşturabilirim?

C#'ta bir Liste oluşturmak için System.Collections.Generic namespace'ini dahil etmeniz gerekmektedir. Ardından, köşeli parantezler içinde veri türünü belirterek bir Liste bildirebilirsiniz. Örneğin: List numbers = new List();

C# Listesine eleman eklemek için hangi yöntemler kullanılır?

Bireysel eleman eklemek için Add() yöntemi ve bir koleksiyon eklemek için AddRange() yöntemi kullanılabilir.

Bir C# Listesini PDF dosyasına nasıl dışa aktarabilirim?

Bir C# Listesini PDF dosyasına dışa aktarmak için IronPDF kütüphanesini kullanabilirsiniz. Liste verilerinizi HTML tablo formatına dönüştürün ve ardından IronPDF ile bir PDF olarak işleyin.

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

Bir C# Listesini artan sırayla Sort() yöntemi ile sıralayabilirsiniz. Azalan sıralama için, Sort() yöntemini özel bir karşılaştırma delegesi ile kullanabilirsiniz.

C# Listesindeki elemanlara nasıl erişirsiniz?

C# Listesindeki elemanlara diziler gibi indeksleri kullanarak erişebilirsiniz. Listeler sıfırdan başlayan indise sahiptir, dolayısıyla bir elemanın konumunu kullanarak ona erişebilirsiniz.

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

Belirli elemanlar için Remove() yöntemi, belirli bir indeks için RemoveAt() ve tüm elemanları çıkarmak için Clear() yöntemlerini kullanabilirsiniz.

LINQ, C# Listeleri ile nasıl kullanılabilir?

LINQ, filtreleme, haritalama ve minimum veya maksimum değerleri etkili bir şekilde bulma gibi güçlü sorgular ve dönüşümler yapmak için C# Listeleri ile kullanılabilir.

Bir Listeyi C#'ta bir diziye nasıl dönüştürebilirim?

Bir C# Listesini, elemanlarını içeren yeni bir dizi oluşturan ToArray() yöntemi ile bir diziye dönüştürebilirsiniz.

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

C# Listeleri genellikle dinamik veri koleksiyonlarını yönetmek, LINQ ile karmaşık sorgular yapmak ve IronPDF gibi kütüphaneler kullanarak raporlar veya belgeler oluşturmak için kullanılır.

C# Listesinde elemanlar üzerinde nasıl iterasyon yapılır?

C# Listesindeki elemanlar üzerinde basit bir yineleme için foreach döngüleri veya indekse ihtiyaç duyduğunuzda for döngüleri kullanabilirsiniz.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

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 ...

Daha Fazla Oku

Iron Destek Ekibi

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