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

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

Listeler, System.Collections.Generic isim alanının bir parçasıdır ve veri koleksiyonlarını işleme için çok yönlüdür. C# dilinde listeler dinamiktir, yani boyutları çalışma zamanında değişebilir. Bu esneklik, önden bilinmeyen eleman sayısı olan birçok yazılım mühendisliği senaryosunda çok faydalıdır. C# dilinde bir listeyi başlatmanın farklı yollarına dalalım. Temel tekniklerden, nesne başlatıcı sözdizimi, koleksiyon başlatıcıları ve IronPDF kütüphanesi'ni ele alacağız.

Temel Liste Başlatma

Bir listeyi başlatmak için, ilk olarak listede yer alacak elemanların türü olan T türündeki List<t> sınıfının bir örneğini oluşturun. En yaygın tür string'dir, 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 kullanarak ekledik. List<string>, bir dizi string temsil eder ve onu değerlerle doldurmak için Add yöntemini kullandık.

Koleksiyon Başlatıcı Söz Dizimini Kullanma

C#, koleksiyon başlatıcı sözdizimi kullanarak bir listeyi başlatmanın daha özlü bir yolunu sunar. Bu, listeyi oluşturulduğu anda doğrudan doldurmanıza, Add yöntemini tekrar tekrar çağırmadan imkan tanı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 daha kompakt bir biçimde elde eder. Koleksiyon başlatıcıları, tek bir ifadede bir listeyi değerlerle başlatmanıza olanak tanır, bu da 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ı gösteren bir örnek:

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 nesnelerinin bir listesini oluşturuyoruz. Person sınıfı, oluşturulan liste sırasında açıkça değerlere atanan Name ve Age olmak üzere iki özelliğe sahiptir.

İlk Boyuta Sahip Bir Liste Oluşturma

Listeler dinamik boyutta olmasına rağmen, yaklaşık kaç eleman saklayacağını biliyorsanız başlangıç kapasitesini belirtebilirsiniz. Bu, hafıza yeniden tahsislerinin 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. Eleman eklemez ancak iç diziyi yeniden boyutlandırmadan 10 elemanın saklanabileceği kadar bellek tahsis eder.

Bir Diziye Dayalı Olarak Liste Başlatma

Ayrıca, bir IEnumerable<t> argümanını alan liste yapıcıyı kullanarak mevcut bir diziden bir liste başlatabilirsiniz. Bu, bir diziye sahip olduğunuzda ve daha fazla esneklik için bunu bir listeye dönüştürmek istediğinizde yararlı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şturulup bir listeyi başlatmak için kullanılır. Bu, fruitArray dizisini bir listeye dönüştürür. Diziler dahil, herhangi bir IEnumerable<t> liste yapıcısına başlatma için geçirilebilir.

AddRange Yöntemini Kullanmak

Mevcut bir eleman koleksiyonunuz varsa, bir listeye birden fazla elemanı 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şlayıp, AddRange kullanarak bir diziden birden fazla yeni öğe ekliyoruz. Bu yöntem, birçok elemanı toplu olarak ekleyerek performansı artırabilir çünkü yeniden tahsis gereksinimini en aza indirir.

Özel Nesnelerle Bir List'i Başlatmak

Özel nesnelerden oluşan bir liste başlatırken, karmaşık veri yapıları oluşturmak için nesne başlatıcılarını ve koleksiyon başlatıcılarını birleştirebilirsiniz.

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, bir ifade içerisinde bir nesne listesini oluşturmanıza ve başlatmanıza olanak tanır, bu da kodun okunabilirliğini ve basitliğini artırır.

Genişletme Yöntemleri ile Liste Başlatma

Bir listeyi özel bir şekilde başlatmak için genişletme yöntemini de uygulayabilirsiniz. Genişletme yöntemleri, mevcut türlerde yeni yetenekler ek bir yapıyı değiştirmeden iyileştirmek için bir mekanizma 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 listeye eleman ekleyen ve listenin kendisini döndüren bir uzantı metodu, InitializeWith, tanımlıyoruz. Bu, listenin başlatılmasını ve doldurulmasını zincirleme yapmanıza olanak tanır.

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

Meyve listesi gibi bir listeye sahipseniz, bunu birkaç kod satırında bir HTML tablosuna dönüştürebilir ve PDF olarak işleyebilirsiniz IronPDF kullanarak. Süreç basittir: listenizi başlatın, HTML'ye dönüştürün ve PDF'yi yaratmak için IronPDF'yi kullanın. İş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 listeyi başlatır, ondan bir HTML tablosu oluşturur ve IronPDF'yi kullanarak bir PDF dosyası oluşturur. Verilerinizden 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# dilinde liste başlatma, her yazılım mühendisinin ustalaşması gereken temel bir kavramdır. Basit string listelerinden karmaşık nesne listelerine kadar, C# listeleri verimli bir şekilde başlatmak ve doldurmak için çeşitli yöntemler sunar. Temel başlatmadan nesne ve koleksiyon başlatıcılarına kadar, bu teknikler temiz, özlü ve bakımı kolay kod yazmanıza yardımcı olur.

IronPDF, ürünü ilk yatırım yapmadan denemenizi sağlayan ücretsiz bir deneme sürümünü sunar. İhtiyaçlarınızı karşıladığında emin olduğunuzda, lisanslar $799'den başlayan fiyatlarla mevcuttur.

Sıkça Sorulan Sorular

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

C#'de, T eleman türü olan List sınıfının bir örneğini oluşturarak bir liste başlatabilirsiniz. Örneğin, List fruits = new List(); bir listeyi başlatmanın temel bir yoludur.

Koleksiyon başlatıcı sözdizimi listelerin başlatılmasını C#'de nasıl iyileştirir?

Koleksiyon başlatıcı sözdizimi, listeyi oluşturma sırasında doğrudan doldurmanızı sağlar, bu da kodu daha kısaltır. Örneğin: List fruits = new List { 'Elma', 'Muz', 'Kiraz' };.

Nesne başlatıcı sözdiziminin listeleri başlatırken amacı nedir?

Nesne başlatıcı sözdizimi, özel nesnelerle listeleri başlatmak için yararlıdır ve özellik değerlerinin liste oluşturulurken ayarlanmasına izin verir. Örneğin: new Person { Name = 'John', Age = 30 }; bir liste içinde.

Bir liste için başlangıç kapasitesi belirleyebilir misiniz ve neden faydalıdır?

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

Bir liste, C#'de mevcut bir diziden nasıl başlatılabilir?

Bir liste, IEnumerable kabul eden liste yapıcısını kullanarak bir diziden başlatılabilir. Örnek: List fruits = new List(fruitArray);.

AddRange yöntemi liste başlatmada nasıl bir rol oynar?

AddRange yöntemi, bir koleksiyondan listeye birden fazla öğe ekler, performansı optimize ederek tahsisatları en aza indirir. Örnek: fruits.AddRange(moreFruits);.

Özel nesneler liste içinde nasıl başlatılabilir?

Özel nesneler, nesne ve koleksiyon başlatıcılarının birleşimi kullanılarak bir liste içinde başlatılabilir, liste oluşturmayı tek bir ifade ile gerçekleştirme imkanı tanır. Örnek: new List { new Person { Name = 'Alice', Age = 28 } };.

Yardımcı yöntemler nelerdir ve liste başlatma ile nasıl ilişkilidir?

Yardımcı yöntemler mevcut türlere yeni işlevler eklemeye izin verir. Örneğin, InitializeWith gibi bir yardımcı yöntem, liste başlatma ve doldurma işlemlerini kolaylaştırabilir.

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

IronPDF kullanarak, veri koleksiyonlarından PDF oluşturma işlemini basitleştirerek bir listeyi HTML tablosuna dönüştürebilir ve ardından PDF olarak render edebilirsiniz.

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

Evet, IronPDF veri koleksiyonlarından PDF oluşturma yeteneklerini ilk satın alma olmadan test etmeye olanak tanıyan ücretsiz bir deneme sunmaktadır.

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