
C# Liste 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);
}
}
}Imports System
Imports System.Collections.Generic
Module Program
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
End Sub
End ModuleYukarı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 Sub InitializeList()
Dim fruits As New List(Of String) From {"Apple", "Banana", "Cherry"}
End SubBu 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 }
};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
}
}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 10Dim fruits As New List(Of String)(10) ' Initial size of 10Bu, 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
Dim fruitArray() As String = { "Apple", "Banana", "Cherry" }
Dim fruits As New List(Of String)(fruitArray)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);Dim fruits As New List(Of String) From {"Apple", "Banana"}
Dim moreFruits() As String = { "Cherry", "Date", "Elderberry" }
fruits.AddRange(moreFruits)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 }
};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
}
}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");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")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

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.");
}
}Imports IronPdf
Imports System
Imports System.Collections.Generic
Imports System.Text
Module Program
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
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 Module
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#'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.

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


