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

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

Listeler, System.Collections.Generic ad alanının bir parçasıdır ve veri koleksiyonlarının işlenmesinde çok yönlüdür. C#'da listeler dinamiktir, yani boyutları çalışma zamanında değişebilir. Bu esneklik, eleman sayısının baştan bilinmediği birçok yazılım mühendisliği senaryosunda çok yardımcı olur. C#'da bir listeyi başlatmanın farklı yollarına dalalım. Temel teknikler, nesne başlatıcı sözdizimi, koleksiyon başlatıcılar ve IronPDF kitaplığı konularını ele alacağız.

Temel Liste Başlatma

Bir listeyi başlatmak için, T listenin içindeki elemanların türü olduğu List<t> sınıfının bir örneğini oluşturarak başlayın. En yaygın tür string'dır, ancak herhangi bir tür kullanabilirsiniz.

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // Initialize an empty list
        List<string> fruits = new List<string>();

        // Adding elements to the list
        fruits.Add("Apple");
        fruits.Add("Banana");
        fruits.Add("Cherry");

        // Display the list
        foreach (var fruit in fruits)
        {
            Console.WriteLine(fruit);
        }
    }
}
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // Initialize an empty list
        List<string> fruits = new List<string>();

        // Adding elements to the list
        fruits.Add("Apple");
        fruits.Add("Banana");
        fruits.Add("Cherry");

        // Display the list
        foreach (var fruit in fruits)
        {
            Console.WriteLine(fruit);
        }
    }
}
Imports System
Imports System.Collections.Generic

Friend Class Program
	Shared Sub Main()
		' Initialize an empty list
		Dim fruits As New List(Of String)()

		' Adding elements to the list
		fruits.Add("Apple")
		fruits.Add("Banana")
		fruits.Add("Cherry")

		' Display the list
		For Each fruit In fruits
			Console.WriteLine(fruit)
		Next fruit
	End Sub
End Class
$vbLabelText   $csharpLabel

Yukarıdaki örnekte, boş bir liste oluşturduk ve elemanları Add yöntemi ile ekledik. List<string> bir dizi string listesini temsil eder ve biz onu değerlerle doldurmak için Add yöntemini kullandık.

Koleksiyon Başlatıcı Sözdizimi Kullanımı

C# daha özlü bir liste başlatma yolu olarak koleksiyon başlatıcı sözdizimi sunar. Bu, listeyi oluşturulduğunda doğrudan doldurmanıza olanak tanır, Add yöntemini tekrar tekrar çağırmaktan kurtarır.

public void InitializeList()
{
    List<string> fruits = new List<string> { "Apple", "Banana", "Cherry" };
}
public void InitializeList()
{
    List<string> fruits = new List<string> { "Apple", "Banana", "Cherry" };
}
Public Sub InitializeList()
	Dim fruits As New List(Of String) From {"Apple", "Banana", "Cherry"}
End Sub
$vbLabelText   $csharpLabel

Bu kod, önceki örnekle aynı sonucu sağlar ancak daha kompakt bir formda. Koleksiyon başlatıcılar, tek bir ifadeyle listeyi değerlerle başlatmanıza olanak tanır ve kodunuzu daha okunabilir hale getirir.

Nesne Başlatıcılar ve Liste Başlatma

Nesne başlatıcı sözdizimi, özellikle özel nesnelerle çalışırken, listeleri başlatmanın başka bir yoludur. Nesne başlatıcıların listelerle nasıl çalıştığının bir örneği:

class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

List<Person> people = new List<Person>
{
    new Person { Name = "John", Age = 30 },
    new Person { Name = "Jane", Age = 25 },
    new Person { Name = "Jack", Age = 35 }
};
class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

List<Person> people = new List<Person>
{
    new Person { Name = "John", Age = 30 },
    new Person { Name = "Jane", Age = 25 },
    new Person { Name = "Jack", Age = 35 }
};
Friend Class Person
	Public Property Name() As String
	Public Property Age() As Integer
End Class

Private people As New List(Of Person) From {
	New Person With {
		.Name = "John",
		.Age = 30
	},
	New Person With {
		.Name = "Jane",
		.Age = 25
	},
	New Person With {
		.Name = "Jack",
		.Age = 35
	}
}
$vbLabelText   $csharpLabel

Bu örnekte, nesne başlatıcıları kullanarak Person nesneleri listesini oluşturuyoruz. Person sınıfı, liste oluşturulduğunda açıkça değer atanan Name ve Age olmak üzere iki özelliğe sahiptir.

Başlangıç Boyutuyla Liste Oluşturma

Listeler dinamik boyutta olsalar da, listeye yaklaşık olarak kaç eleman sığacağını biliyorsanız, başlangıç kapasitesini belirleyebilirsiniz. Bu, bellek yeniden ayırma sayısını azaltarak performansı artırabilir.

List<string> fruits = new List<string>(10); // Initial size of 10
List<string> fruits = new List<string>(10); // Initial size of 10
Dim fruits As New List(Of String)(10) ' Initial size of 10
$vbLabelText   $csharpLabel

Bu, başlangıç kapasitesi 10 olan boş bir liste oluşturur. Herhangi bir eleman eklemez, ancak dahili diziyi yeniden boyutlandırmadan 10 eleman kadar belleği tahsis eder.

Bir Diziden Liste Başlatma

Ayrıca, bir IEnumerable<t> argümanı alan liste oluşturucusunu kullanarak mevcut bir diziden bir liste başlatabilirsiniz. Bu, bir diziye sahip olduğunuzda ve esneklik sağlamak için listeye dönüştürmek istediğinizde faydalıdır.

// New String array of fruit
string[] fruitArray = { "Apple", "Banana", "Cherry" };
List<string> fruits = new List<string>(fruitArray);
// New String array of fruit
string[] fruitArray = { "Apple", "Banana", "Cherry" };
List<string> fruits = new List<string>(fruitArray);
' New String array of fruit
Dim fruitArray() As String = { "Apple", "Banana", "Cherry" }
Dim fruits As New List(Of String)(fruitArray)
$vbLabelText   $csharpLabel

Burada, yeni bir dizi oluşturulmakta ve ardından bir liste başlatmak için kullanılmaktadır. Bu, fruitArray dizisini bir listeye dönüştürür. Diziler dahil herhangi bir IEnumerable<t>, başlatma için liste oluşturucusuna geçirilebilir.

AddRange Yönteminin Kullanımı

Eğer mevcut bir öğe koleksiyonunuz varsa, bir listeye birden fazla elementi bir arada eklemek için AddRange yöntemini kullanabilirsiniz.

List<string> fruits = new List<string> { "Apple", "Banana" };
string[] moreFruits = { "Cherry", "Date", "Elderberry" };
fruits.AddRange(moreFruits);
List<string> fruits = new List<string> { "Apple", "Banana" };
string[] moreFruits = { "Cherry", "Date", "Elderberry" };
fruits.AddRange(moreFruits);
Dim fruits As New List(Of String) From {"Apple", "Banana"}
Dim moreFruits() As String = { "Cherry", "Date", "Elderberry" }
fruits.AddRange(moreFruits)
$vbLabelText   $csharpLabel

Bu örnekte, iki eleman içeren bir liste ile başlıyoruz ve AddRange kullanarak bir diziden birden fazla yeni öğe ekliyoruz. Bu yöntem, birden fazla yeniden ayırma gereksinimini en aza indirerek elemanları toplu olarak eklemenin performansını artırabilir.

Özel Nesnelerle Listeyi Başlatma

Özel nesnelerden oluşan bir listeyi başlatırken, nesne başlatıcıları koleksiyon başlatıcılarla birleştirerek tek bir ifadede karmaşık veri yapıları oluşturabilirsiniz.

List<Person> people = new List<Person>
{
    new Person { Name = "Alice", Age = 28 },
    new Person { Name = "Bob", Age = 32 },
    new Person { Name = "Charlie", Age = 40 }
};
List<Person> people = new List<Person>
{
    new Person { Name = "Alice", Age = 28 },
    new Person { Name = "Bob", Age = 32 },
    new Person { Name = "Charlie", Age = 40 }
};
Dim people As New List(Of Person) From {
	New Person With {
		.Name = "Alice",
		.Age = 28
	},
	New Person With {
		.Name = "Bob",
		.Age = 32
	},
	New Person With {
		.Name = "Charlie",
		.Age = 40
	}
}
$vbLabelText   $csharpLabel

Bu teknik, tek bir ifadede nesneler listesi oluşturup başlatmanıza olanak tanıyarak kodu özlü ve okunması kolay hale getirir.

Uzantı Yöntemleri ile Liste Başlatma

Bir listeyi özel bir şekilde başlatmak için bir uzantı yöntemi de uygulayabilirsiniz. Uzantı yöntemleri, mevcut türlere yeni yetenekler ekleyerek orijinal yapıyı değiştirmeden onları iyileştirme mekanizması sağlar.

public static class ListExtensions
{
    public static List<t> InitializeWith<t>(this List<t> list, params T[] elements)
    {
        list.AddRange(elements);
        return list;
    }
}

// Usage
List<string> fruits = new List<string>().InitializeWith("Apple", "Banana", "Cherry");
public static class ListExtensions
{
    public static List<t> InitializeWith<t>(this List<t> list, params T[] elements)
    {
        list.AddRange(elements);
        return list;
    }
}

// Usage
List<string> fruits = new List<string>().InitializeWith("Apple", "Banana", "Cherry");
Imports System.Collections.Generic

Public Module ListExtensions
    <System.Runtime.CompilerServices.Extension>
    Public Function InitializeWith(Of T)(list As List(Of T), ParamArray elements As T()) As List(Of T)
        list.AddRange(elements)
        Return list
    End Function
End Module

' Usage
Dim fruits As List(Of String) = New List(Of String)().InitializeWith("Apple", "Banana", "Cherry")
$vbLabelText   $csharpLabel

Burada, InitializeWith adında bir genişletme metodu tanımlıyoruz, bu yöntem elemanları listeye ekler ve listeyi geri döndürür. Bu, listenin başlatmasını ve doldurulmasını zincirleme hale getirmenizi sağlar.

IronPDF: C# PDF Kütüphanesi

C# Liste Başlatma (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - IronPDF: C# PDF Kütüphanesi

Bir meyve listesi gibi bir listeniz varsa, HTML tablosuna dönüştürüp PDF olarak render edebilirsiniz IronPDF kullanarak, hepsi sadece birkaç kod satırında. Süreç oldukça basit: listenizi başlatın, HTML'ye dönüştürün ve IronPDF'in PDF'yi üretmesine izin verin. İşte bir örnek:

using IronPdf;
using System;
using System.Collections.Generic;
using System.Text;

class Program
{
    static void Main()
    {
        // Initialize a list of strings representing data
        List<string> fruits = new List<string> { "Apple", "Banana", "Cherry" };

        // Convert the list to an HTML table
        StringBuilder htmlContent = new StringBuilder();
        htmlContent.Append("<table border='1'><tr><th>Fruit Name</th></tr>");
        foreach (var fruit in fruits)
        {
            htmlContent.Append($"<tr><td>{fruit}</td></tr>");
        }
        htmlContent.Append("</table>");

        // Render the HTML to PDF using IronPDF
        var Renderer = new ChromePdfRenderer();
        var PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString());

        // Save the PDF to a file
        PDF.SaveAs("FruitsList.pdf");
        Console.WriteLine("PDF generated successfully.");
    }
}
using IronPdf;
using System;
using System.Collections.Generic;
using System.Text;

class Program
{
    static void Main()
    {
        // Initialize a list of strings representing data
        List<string> fruits = new List<string> { "Apple", "Banana", "Cherry" };

        // Convert the list to an HTML table
        StringBuilder htmlContent = new StringBuilder();
        htmlContent.Append("<table border='1'><tr><th>Fruit Name</th></tr>");
        foreach (var fruit in fruits)
        {
            htmlContent.Append($"<tr><td>{fruit}</td></tr>");
        }
        htmlContent.Append("</table>");

        // Render the HTML to PDF using IronPDF
        var Renderer = new ChromePdfRenderer();
        var PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString());

        // Save the PDF to a file
        PDF.SaveAs("FruitsList.pdf");
        Console.WriteLine("PDF generated successfully.");
    }
}
Imports IronPdf
Imports System
Imports System.Collections.Generic
Imports System.Text

Friend Class Program
	Shared Sub Main()
		' Initialize a list of strings representing data
		Dim fruits As New List(Of String) From {"Apple", "Banana", "Cherry"}

		' Convert the list to an HTML table
		Dim htmlContent As New StringBuilder()
		htmlContent.Append("<table border='1'><tr><th>Fruit Name</th></tr>")
		For Each fruit In fruits
			htmlContent.Append($"<tr><td>{fruit}</td></tr>")
		Next fruit
		htmlContent.Append("</table>")

		' Render the HTML to PDF using IronPDF
		Dim Renderer = New ChromePdfRenderer()
		Dim PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString())

		' Save the PDF to a file
		PDF.SaveAs("FruitsList.pdf")
		Console.WriteLine("PDF generated successfully.")
	End Sub
End Class
$vbLabelText   $csharpLabel

C# Liste Başlatma (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - Örnek çıktı

Bu kod bir liste başlatır, ondan bir HTML tablo oluşturur ve IronPDF kullanarak bir PDF dosyası oluşturur. Veritabanlarınızdan PDF oluşturmanın basit ve doğrudan bir yoludur.

Sonuç

C# Liste Başlatma (Geliştiriciler İçin Nasıl Çalışır): Şekil 3 - IronPDF lisans sayfası

C#'da liste başlatma, her yazılım mühendisinin ustalaşması gereken temel bir kavramdır. Basit dizeler listeleri veya karmaşık nesneler listeleri üzerinde çalışıyor olun, C#, listeleri verimli bir şekilde başlatmak ve doldurmak için çeşitli yöntemler sağlar. Temel başlatmadan nesne ve koleksiyon başlatıcılarına kadar, bu teknikler daha temiz, öz ve sürdürülebilir kod yazmanıza yardımcı olur.

IronPDF, ürünü ilk yatırım yapmadan denemenizi sağlayan bir ücretsiz deneme sunar. İhtiyaçlarınıza uygun olduğundan emin olduğunuzda, lisanslar $999 başlangıç fiyatıyla mevcuttur.

Sıkça Sorulan Sorular

C#'ta bir listeyi başlatmanın temel yöntemleri nelerdir?

C#'ta, List<T> sınıfının bir örneğini oluşturarak bir liste başlatabilirsiniz, burada T öğelerin türüdür. Örneğin, List<string> fruits = new List<string>(); bir listeyi başlatmanın temel bir yoludur.

C#'ta liste başlatmayı, koleksiyon başlatıcı sözdizimi nasıl geliştirebilir?

Koleksiyon başlatıcı sözdizimi, oluşturulma sırasında bir listeyi doğrudan doldurmanıza olanak tanır, böylece kodu daha özlü hale getirir. Örneğin: List<string> fruits = new List<string> { 'Elma', 'Muz', 'Kiraz' };.

Liste başlatırken nesne başlatıcı sözdiziminin amacı nedir?

Nesne başlatıcı sözdizimi, liste oluşturulurken özellik değerlerinin ayarlanmasına olanak tanıyan özel nesnelerle listelerin başlatılmasında yararlıdır. Örneğin: new Person { Name = 'John', Age = 30 }; liste içinde.

Liste için başlangıç kapasitesi ayarlayabilir misiniz ve bu neden faydalıdır?

Evet, bir liste için başlangıç kapasitesi ayarlamak, liste büyüdükçe yeniden bellek tahsisini azaltarak performansı artırabilir. Örnek: List<string> fruits = new List<string>(10);.

C#'ta mevcut bir diziden bir liste nasıl başlatılabilir?

Bir diziden listeyi, bir IEnumerable<T> kabul eden liste oluşturucu kullanarak başlatabilirsiniz. Örnek: List<string> fruits = new List<string>(fruitArray);.

AddRange yöntemi liste başlatmasında ne rol oynar?

AddRange yöntemi, bir koleksiyondan bir listeye bir kerede birden fazla öğe ekleyerek performansı optimize eder. Örnek: fruits.AddRange(moreFruits);.

Başlatıcılar kullanarak özel nesneler nasıl bir listede başlatılabilir?

Özel nesneler, oluşturma için tek bir ifade etkinleştirerek liste içinde nesne ve koleksiyon başlatıcılarının bir kombinasyonu kullanılarak başlatılabilir. Örnek: new List<Person> { new Person { Name = 'Alice', Age = 28 } };.

Uzantı yöntemleri nelerdir ve liste başlatmayla nasıl ilişkilidirler?

Uzantı yöntemleri, mevcut tiplere yeni işlevler eklemeye olanak tanır. Örneğin, InitializeWith gibi bir uzantı yöntemi, liste başlatma ve doldurma işlemini kolaylaştırmak için yazılabilir.

C#'ta listeler nasıl PDF'lere dönüştürülebilir?

IronPDF kullanarak, bir listeyi HTML tablosuna dönüştürebilir ve PDF olarak render edebilirsiniz, bu da C#'ta veri koleksiyonlarından PDF oluşturma sürecini basitleştirir.

Veri koleksiyonlarından PDF oluşturma için bir ücretsiz deneme sürümü mevcut mu?

Evet, IronPDF, kullanıcıların veri koleksiyonlarından PDF oluşturma yeteneklerini ilk satın alma olmadan test etmelerine olanak tanıyan bir ücretsiz deneme sürümü sunuyor.

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