C# Liste Yazdırma: Hızlı Bir Öğretici
C#'da bir liste yazdırmak yaygın bir görevdir ve çeşitli şekillerde başarılabilir, esneklik ve özelleştirme sunar. Listeler, C#'da temel veri yapılarıdır ve içeriklerini yazdırabilmek, hata ayıklama, loglama veya kullanıcılara bilgi sağlamak için önemlidir.
Bu makalede, C#'da bir listeyi yazdırmanın farklı yöntemlerini inceleyeceğiz.
C#'da Listenin Temelleri
C#'da, bir list boyutu büyüyebilen veya küçülebilen dinamik bir dizidir. System.Collections.Generic ad alanının bir parçasıdır ve öğe koleksiyonlarını yönetmede esneklik ve verimlilik sağlar. Aşağıdaki kod, basit bir sayı listesini oluşturur:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
}
}
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
}
}
Imports System
Imports System.Collections.Generic
Class Program
Shared Sub Main()
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
End Sub
End Class
Bir Döngü Kullanarak Listeyi Yazdırma
1. foreach Döngüsünü Kullanma
Bir listenin öğelerini yazdırmanın geleneksel ve basit yolu foreach döngüsünü kullanmaktır. İşte basit bir örnek:
using System;
using System.Collections.Generic;
class Program
{
public static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
Console.WriteLine("Printing list using foreach loop:");
foreach (var number in numbers)
{
Console.WriteLine(number);
}
}
}
using System;
using System.Collections.Generic;
class Program
{
public static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
Console.WriteLine("Printing list using foreach loop:");
foreach (var number in numbers)
{
Console.WriteLine(number);
}
}
}
Imports System
Imports System.Collections.Generic
Friend Class Program
Public Shared Sub Main()
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
Console.WriteLine("Printing list using foreach loop:")
For Each number In numbers
Console.WriteLine(number)
Next number
End Sub
End Class
Bu yöntem, çoğu senaryo icin uygun hale getiren öz ise kısa ve okunabilir olduğudur.
2. for Döngüsünü Kullanma
Dize veya koşullu olarak yazdırma üzerinde daha fazla kontrol istiyorsanız, for döngüsünü kullanabilirsiniz. İşte bir dize listesinin örneği:
using System;
using System.Collections.Generic;
class Program
{
public static void Main()
{
// Create list of strongly typed objects
List<string> colors = new List<string> { "Red", "Green", "Blue", "Yellow" };
Console.WriteLine("Printing list using for loop:");
for (int index = 0; index < colors.Count; index++)
{
Console.WriteLine($"Color at index {index}: {colors[index]}");
}
}
}
using System;
using System.Collections.Generic;
class Program
{
public static void Main()
{
// Create list of strongly typed objects
List<string> colors = new List<string> { "Red", "Green", "Blue", "Yellow" };
Console.WriteLine("Printing list using for loop:");
for (int index = 0; index < colors.Count; index++)
{
Console.WriteLine($"Color at index {index}: {colors[index]}");
}
}
}
Imports System
Imports System.Collections.Generic
Friend Class Program
Public Shared Sub Main()
' Create list of strongly typed objects
Dim colors As New List(Of String) From {"Red", "Green", "Blue", "Yellow"}
Console.WriteLine("Printing list using for loop:")
For index As Integer = 0 To colors.Count - 1
Console.WriteLine($"Color at index {index}: {colors(index)}")
Next index
End Sub
End Class
Bu yaklaşım, indexe erişim gerektiğinde veya yazdırma sırasında belirli bir mantık uygulamak istendiğinde faydalı olabilir.
Liste Elemanlarini Ters Sirada Yazdirmak
Bir listeyi ters sırayla yazdırmak, Reverse yöntemini kullanarak gerçekleştirilebilir. Bu yöntem, listedeki ogeleri tersine cevirir, bu da onların uzerinden gecerek yazdirmaniza olanak tanır.
1. List.Reverse Metodunu Kullanarak
Örneğin, listeyi ters sırayla yazdırmak için Reverse yöntemini kullanabilir ve ardından her öğeyi yazdırabilirsiniz.
using System;
using System.Collections.Generic;
class Program
{
public static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
numbers.Reverse();
foreach (var number in numbers)
{
Console.WriteLine(number);
}
}
}
using System;
using System.Collections.Generic;
class Program
{
public static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
numbers.Reverse();
foreach (var number in numbers)
{
Console.WriteLine(number);
}
}
}
Imports System
Imports System.Collections.Generic
Friend Class Program
Public Shared Sub Main()
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
numbers.Reverse()
For Each number In numbers
Console.WriteLine(number)
Next number
End Sub
End Class
2. LINQ OrderByDescending Kullanarak
Ayrıca, LINQ'nin jenerik sınıfından belirli bir koleksiyonu anahtarla sıralamak için bir OrderByDescending yöntemi kullanabilirsiniz:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
public static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
var reversedNumbers = numbers.OrderByDescending(n => n);
foreach (var number in reversedNumbers)
{
Console.WriteLine(number);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
public static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
var reversedNumbers = numbers.OrderByDescending(n => n);
foreach (var number in reversedNumbers)
{
Console.WriteLine(number);
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Linq
Friend Class Program
Public Shared Sub Main()
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
Dim reversedNumbers = numbers.OrderByDescending(Function(n) n)
For Each number In reversedNumbers
Console.WriteLine(number)
Next number
End Sub
End Class
Eleman Sayma ve Yazdırma
Bir listedeki elemanların sayısını saymak yaygın bir işlemdir. Bu amaçla Count özelliği kullanılabilir. Sayımı aldıktan sonra, kolayca yazdırabilirsiniz.
1. List.Count Özelliğini Kullanma
using System;
using System.Collections.Generic;
class Program
{
public static void Main()
{
List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
int count = names.Count;
Console.WriteLine($"Number of elements: {count}");
}
}
using System;
using System.Collections.Generic;
class Program
{
public static void Main()
{
List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
int count = names.Count;
Console.WriteLine($"Number of elements: {count}");
}
}
Imports System
Imports System.Collections.Generic
Friend Class Program
Public Shared Sub Main()
Dim names As New List(Of String) From {"Alice", "Bob", "Charlie"}
Dim count As Integer = names.Count
Console.WriteLine($"Number of elements: {count}")
End Sub
End Class
2. LINQ Count Metodunu Kullanma
LINQ tercih edilirse, sayım için de kullanılabilir:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
public static void Main()
{
List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
int count = names.Count();
Console.WriteLine($"Number of elements: {count}");
}
}
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
public static void Main()
{
List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
int count = names.Count();
Console.WriteLine($"Number of elements: {count}");
}
}
Imports System
Imports System.Collections.Generic
Imports System.Linq
Friend Class Program
Public Shared Sub Main()
Dim names As New List(Of String) From {"Alice", "Bob", "Charlie"}
Dim count As Integer = names.Count()
Console.WriteLine($"Number of elements: {count}")
End Sub
End Class
Belirli İndekste Liste Elemanlarını Yazdırma
Belirtilen bir indeksteki elemanları yazdırmak, listedeki o indekse erişmeyi içerir. Bu, farklı konumlardaki elemanlara erişmenizi sağlar ve olası haksız indeks senaryolarını ele almanızı garantiler:
using System;
using System.Collections.Generic;
class Program
{
public static void Main()
{
List<double> prices = new List<double> { 19.99, 29.99, 39.99 };
int indexToPrint = 1;
if (indexToPrint >= 0 && indexToPrint < prices.Count)
{
Console.WriteLine($"Element at index {indexToPrint}: {prices[indexToPrint]}");
}
else
{
Console.WriteLine("Index out of range.");
}
}
}
using System;
using System.Collections.Generic;
class Program
{
public static void Main()
{
List<double> prices = new List<double> { 19.99, 29.99, 39.99 };
int indexToPrint = 1;
if (indexToPrint >= 0 && indexToPrint < prices.Count)
{
Console.WriteLine($"Element at index {indexToPrint}: {prices[indexToPrint]}");
}
else
{
Console.WriteLine("Index out of range.");
}
}
}
Imports System
Imports System.Collections.Generic
Friend Class Program
Public Shared Sub Main()
Dim prices As New List(Of Double) From {19.99, 29.99, 39.99}
Dim indexToPrint As Integer = 1
If indexToPrint >= 0 AndAlso indexToPrint < prices.Count Then
Console.WriteLine($"Element at index {indexToPrint}: {prices(indexToPrint)}")
Else
Console.WriteLine("Index out of range.")
End If
End Sub
End Class
Bu örnekler farklı senaryolarda liste elemanlarını yazdırmak için bir temel oluşturur. list sınıfının sunmuş olduğu ve yazdırmak için kullanılabilecek diğer yararlı yöntemler de vardır.
Bazı yararlı yöntemler şunlardır:
Remove:C# listesindeki ilk olayın çıkarılmasını gerçekleştirenRemove()yöntemidir.RemoveAll:belirtilen önermeye dayalı olarak öğeleri kaldırmak için kullanılanRemoveAll()yöntemidir.RemoveRange:belirtilen indeks ve sayı parametrelerine dayalı olarak bir dizi elemanı kaldıranRemoveRange()yöntemidir.Add:liste sonuna yalnızca bir eleman ekleyebilenAdd()yöntemidir.AddRange:belirli koleksiyonun öğelerini sonuna ekleyebilenAddRange()yöntemidir.Clear:listedeki tüm öğeleri kaldıranClear()yöntemidir.Insert:belirtilen indekste listeye bir öğe ekleyenInsert()yöntemidir.ForEach:, her bir elemanda belirli işlemleri gerçekleştirmek, örneğin, her liste değerini verimli bir şekilde yazdırmak için kullanılanForEach()yöntemidir.ToArray:listeyi yeni bir diziye kopyalar yapanToArray()yöntemidir.
Artık C# kodunuzun okunabilirliğini ve verimliliğini artıran en iyi yaklaşımı seçebilirsiniz.
String.Join Metodu
String.Join yöntemi, bir listenin öğelerini belirtilen bir ayırıcı ile tek bir dize halinde birleştirmek için uygun bir yol sağlar. Bu, listenin biçimlendirilmiş bir string temsili oluşturmada faydalı olabilir.
using System;
using System.Collections.Generic;
class Program
{
public static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
string result = string.Join(", ", numbers);
Console.WriteLine(result);
}
}
using System;
using System.Collections.Generic;
class Program
{
public static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
string result = string.Join(", ", numbers);
Console.WriteLine(result);
}
}
Imports System
Imports System.Collections.Generic
Friend Class Program
Public Shared Sub Main()
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
Dim result As String = String.Join(", ", numbers)
Console.WriteLine(result)
End Sub
End Class
Burada listenin öğeleri numbers virgül ve boşluk ile ayrılan bir dizeye birleştirilir, ve sonuçta biçimlendirilmiş bir çıktı ortaya konur. Liste elemanlarını yazdırmadan önce sıralama metodu da kullanılabilir.
Gelişmiş Senaryolar İçin LINQ Kullanma
Daha karmaşık senaryolar için, yazdırmadan önce filtrelemek, dönüştürmek veya biçimlendirmek istediğiniz durumlarda Dile Entegre Edilmiş Sorgu (LINQ) faydalı olabilir.
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
public static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
List<int> evenNumbers = numbers.Where(n => n % 2 == 0).ToList();
Console.WriteLine("Even numbers: " + string.Join(", ", evenNumbers));
}
}
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
public static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
List<int> evenNumbers = numbers.Where(n => n % 2 == 0).ToList();
Console.WriteLine("Even numbers: " + string.Join(", ", evenNumbers));
}
}
Imports System
Imports System.Collections.Generic
Imports System.Linq
Friend Class Program
Public Shared Sub Main()
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
Dim evenNumbers As List(Of Integer) = numbers.Where(Function(n) n Mod 2 = 0).ToList()
Console.WriteLine("Even numbers: " & String.Join(", ", evenNumbers))
End Sub
End Class
Bu örnekte, LINQ, orijinal listeden çift sayıları filtrelemek için kullanılır. Where() yöntemi lambda ifadesi ile uygulanır ve ToList() yöntemi sonucu tekrar listeye dönüştürmek için kullanılır.

Özel Nesneler ve ToString() Metodu
Özel nesnelerden oluşan bir listeniz varsa, anlamlı bir temsil için nesne sınıfınızdaki ToString yöntemini geçersiz kılmanız önerilir. Aşağıdaki örnek bunu nasıl yapabileceğinizi göstermektedir:
using System;
using System.Collections.Generic;
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public override string ToString()
{
return $"{Name}, {Age} years old";
}
}
class Program
{
public static void Main()
{
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 30 },
new Person { Name = "Bob", Age = 25 }
};
foreach (Person person in people)
{
Console.WriteLine(person);
}
}
}
using System;
using System.Collections.Generic;
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public override string ToString()
{
return $"{Name}, {Age} years old";
}
}
class Program
{
public static void Main()
{
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 30 },
new Person { Name = "Bob", Age = 25 }
};
foreach (Person person in people)
{
Console.WriteLine(person);
}
}
}
Imports System
Imports System.Collections.Generic
Friend Class Person
Public Property Name() As String
Public Property Age() As Integer
Public Overrides Function ToString() As String
Return $"{Name}, {Age} years old"
End Function
End Class
Friend Class Program
Public Shared Sub Main()
Dim people As New List(Of Person) From {
New Person With {
.Name = "Alice",
.Age = 30
},
New Person With {
.Name = "Bob",
.Age = 25
}
}
For Each person As Person In people
Console.WriteLine(person)
Next person
End Sub
End Class
ToString() yöntemini Person sınıfında geçersiz kılarak, sınıfın örneklerinin dizeler olarak nasıl temsil edileceğine siz karar verirsiniz. Bu, yazdırdığınızda listenizin okunabilirliğini artırır.

IronPrint - C# Yazdırma Kütüphanesini Tanıtma
IronPrint, doğruluğu, kullanım kolaylığını ve hızı öncelikli kılan güçlü ve dağıtılabilir bir yazdırma kütüphanesi olarak öne çıkıyor. Çapraz platform desteği ve çeşitli belge formatları ile uyumluluğu, .NET geliştiricileri için uygulamalarında verimli yazdırma çözümlerine ihtiyaç duyduklarında değerli bir araçtır.

Temel Özellikler
IronPrint'in C# uygulamalarında fiziksel belgeleri yazdırmada öne çıkan bazı önemli temel özellikleri şunlardır:
1. Çapraz Platform Uyumluluğu
- .NET Sürüm Desteği: .NET 8, 7, 6, 5 ve Core 3.1+
- İşletim Sistemleri: Windows (7+, Server 2016+), macOS (10+), iOS (11+), Android API 21+ (v5 "Lollipop")
- Proje Türleri: Mobil (Xamarin & MAUI & Avalonia), Masaüstü (WPF & MAUI & Windows Avalonia), Konsol (Uygulama & Kütüphane)
2. Desteklenen Formatlar
- PDF, PNG, HTML, TIFF, GIF, JPEG, IMAGE ve BITMAP dahil olmak üzere çeşitli belge formatlarını ele alın.
- Belge gereksinimlerine göre yazdırma ayarlarını özelleştirin.
3. Kolay Kurulum
NuGet Paket Yöneticisi Konsolu kullanarak IronPrint kütüphanesini kurun:
Install-Package IronPrint
Alternatif olarak, Visual Studio kullanarak projenize kurabilirsiniz. Çözüm Gezgini'nde projeye sağ tıklayın ve Çözümler için NuGet Paket Yöneticisini Yönet'i tıklayın. NuGet tarama sekmesinde "ironprint" araması yapın, arama sonuçlarından IronPrint paketinin en son sürümünü seçin ve ardından projeye eklemek için Yükle düğmesine tıklayın.
IronPrint ile Yazdırma: Kod Örnekleri
1. Belge Yazdır
IronPrint, belgelerin sessizce yazdırılmasını basit olan Print yöntemi ile sunar. Fiziksel bir yazıcı yoksa, OS tarafından belirtilen varsayılan yazıcı kullanılarak yazdırır.
using IronPrint;
class Program
{
static void Main()
{
// Print the document
Printer.Print("newDoc.pdf");
}
}
using IronPrint;
class Program
{
static void Main()
{
// Print the document
Printer.Print("newDoc.pdf");
}
}
Imports IronPrint
Friend Class Program
Shared Sub Main()
' Print the document
Printer.Print("newDoc.pdf")
End Sub
End Class
2. Diyalog ile Yazdır
Ayrıca daha iyi kontrol için bir print iletişim şekli sunar. ShowPrintDialogAsync yöntemi, asenkron olarak yazdırmak için de kullanılabilir.
using IronPrint;
class Program
{
static void Main()
{
// Show print dialog
Printer.ShowPrintDialog("newDoc.pdf");
}
}
using IronPrint;
class Program
{
static void Main()
{
// Show print dialog
Printer.ShowPrintDialog("newDoc.pdf");
}
}
Imports IronPrint
Friend Class Program
Shared Sub Main()
' Show print dialog
Printer.ShowPrintDialog("newDoc.pdf")
End Sub
End Class
3. Yazdırma Ayarlarını Özelleştirme
IronPrint, belgenin yazdırılması üzerinde ayrıntılı kontrol sağlayan çeşitli print ayarları sunar.
using IronPrint;
class Program
{
static void Main()
{
// Configure print settings
PrintSettings printSettings = new PrintSettings()
{
Dpi = 150,
NumberOfCopies = 2,
PaperOrientation = PaperOrientation.Portrait
};
// Print the document
Printer.Print("newDoc.pdf", printSettings);
}
}
using IronPrint;
class Program
{
static void Main()
{
// Configure print settings
PrintSettings printSettings = new PrintSettings()
{
Dpi = 150,
NumberOfCopies = 2,
PaperOrientation = PaperOrientation.Portrait
};
// Print the document
Printer.Print("newDoc.pdf", printSettings);
}
}
Imports IronPrint
Friend Class Program
Shared Sub Main()
' Configure print settings
Dim printSettings As New PrintSettings() With {
.Dpi = 150,
.NumberOfCopies = 2,
.PaperOrientation = PaperOrientation.Portrait
}
' Print the document
Printer.Print("newDoc.pdf", printSettings)
End Sub
End Class
Kullanılan sınıfları ve metotları daha iyi anlamak için lütfen API Referansı sayfasını ziyaret edin.
Sonuç
C#'ta bir listeyi yazdırmak, verilerin karmaşıklığına ve istenen çıktıya göre doğru yöntemi seçmeyi içerir. Basit bir döngü, String.Join(), LINQ kullanarak veya ToString() yöntemini özelleştirerek C# uygulamalarınızda listelerin içeriğini etkili bir şekilde görüntülemek için bu yaklaşımları anlamak sizi donanımlı hale getirir. Bu tekniklerle deney yapın ve spesifik kullanım durumunuza en uygun olanı seçin.
IronPrint doğruluk, kullanım kolaylığı ve hız istiyorsanız tercih edeceğiniz yazdırma kütüphanesidir. WebApp geliştiriyorsanız, MAUI, Avalonia ile çalışıyorsanız veya .NET ile ilgili herhangi bir şey üzerinde çalışıyorsanız, IronPrint sizi destekliyor. IronPrint hakkında daha detaylı bilgi için lütfen bu belgelendirme sayfasını ziyaret edin.
IronPrint ücretli bir kütüphanedir, ancak bir ücretsiz deneme mevcuttur. Kütüphaneyi buradan indirin ve deneyin!
Sıkça Sorulan Sorular
C#'de bir listeyi nasıl yazdırabilirim?
C#'de bir listeyi IronPrint kullanarak yazdırmak, liste öğeleri üzerinde bir foreach veya for döngüsü ile döngü yaparak ve biçimlendirilmiş çıktıyı IronPrint'e ileterek gerçekleştirilebilir.
C#'de dinamik bir dizi kullanmanın faydaları nelerdir?
C#'de dinamik diziler veya listeler esneklik sunar çünkü boyutları büyüyebilir veya küçülebilir. System.Collections.Generic ad alanının bir parçasıdırlar, bu da koleksiyonları verimli bir şekilde yönetmeyi ve işlemlendirmeyi mümkün kılar.
C#'de bir listeyi yazdırmak için nasıl ters çeviririm?
Bir listeyi ters sırayla yazdırmak için Reverse yöntemini veya LINQ'un OrderByDescending yöntemini kullanabilir, ardından ters çevrilmiş listeyi IronPrint ile yazdırabilirsiniz.
C#'de bir listeyi yazdırmak için nasıl bir dizgi olarak biçimlendiririm?
String.Join yöntemini kullanarak liste elemanlarını belirtilen bir ayraçla tek bir biçimlendirilmiş dizgiye birleştirebilirsiniz. Bu biçimlendirilmiş dizgi IronPrint kullanılarak yazdırılabilir.
Özel nesneleri yazdırmada ToString yönteminin rolü nedir?
ToString yöntemini geçersiz kılarak, özel nesnelerin örneklerinin dizgi olarak nasıl temsil edildiğini tanımlayabilir, bu da IronPrint ile yazdırıldığında okunabilirliği artırır.
C#'de bir listeden belirli öğeleri filtreleyip nasıl yazdırabilirim?
LINQ yöntemleri, Where gibi, listeden belirli öğeleri filtrelemek ve seçmek için kullanılabilir. Filtrelenen sonuçlar daha sonra IronPrint kullanılarak yazdırılabilir.
.NET için bir yazdırma kütüphanesini nasıl yüklerim?
IronPrint'i NuGet Paket Yöneticisi Konsolu ile Install-Package IronPrint komutunu kullanarak veya Visual Studio'nun NuGet Paket Yöneticisi aracılığıyla yükleyebilirsiniz.
IronPrint'in .NET geliştiricileri için sunduğu özellikler nelerdir?
IronPrint, çapraz platform uyumluluğu, çeşitli belge formatlarını destekleme, sessiz yazdırma, yazdırma diyalogları ve özelleştirilebilir yazdırma ayarları sunarak .NET geliştiricileri için güçlü bir seçenek yapmaktadır.




