C# Liste Yazdırma: Hızlı Bir Öğretici
C#'ta bir listeyi yazdırmak yaygın bir görevdir ve çeşitli şekillerde yapılabilir, esneklik ve özelleştirme sunar. Listeler, C#'ta temel veri yapılarıdır ve içeriğini yazdırabilme, hata ayıklama, günlük tutma veya kullanıcılara bilgi gösterme için önemlidir.
Bu makalede, farklı yöntemlerle C#'ta bir liste yazdırmayı keşfedeceğiz.
C#'te Liste Temel Bilgileri
C#'da, bir list boyutu büyüyebilen veya küçülebilen dinamik bir dizidir. System.Collections.Generic isim alanının bir parçası olup, öğe koleksiyonlarını handle etmede esneklik ve verimlilik sağlar. Aşağıdaki kod basit bir numaralar listesi 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 Liste Yazdırma
1. foreach Döngüsü Kullanma
Listenin elemanlarını yazdırmanın geleneksel ve basit yolu foreach döngüsü 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 için uygun hale getiren özlü ve okunabilirdir.
2. for Döngüsü Kullanma
İndeks üzerinde daha fazla kontrol ihtiyacı duyuyorsanız veya elemanları koşullu olarak yazdırmak istiyorsanız, for döngüsünü kullanabilirsiniz. İşte bir string listesi ö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, indeks erişimine ihtiyaç duyduğunuzda veya yazdırma sırasında özel bir mantık uygulamak istediğinizde faydalıdır.
Liste Elemanlarını Tersine Yazdırma
Bir listeyi tersten yazdırmak, Reverse metodunu kullanarak gerçekleştirilebilir. Bu yöntem, listedeki elemanların sırasını tersine çevirir ve ardından onları yazdırabilirsiniz.
1. List.Reverse Yöntemini Kullanarak
Örneğin, listenin elemanlarını tersten yazdırmak için Reverse metodunu kullanabilir, ardından her elemanı 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 ile OrderByDescending Kullanarak
OrderByDescending metodunu bir anahtar ile kullanarak, LINQ'nin genel sınıfında belirtilen bir eleman koleksiyonunu düzenleyebilirsiniz.
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 Sayısını Sayma ve Yazdırma
Bir listedeki eleman sayısını saymak yaygın bir işlemdir. Bu amaçla Count özelliği kullanılabilir. Sayılara sahip olduğunuzda, bunu kolayca yazdırabilirsiniz.
1. List.Count Özelliğini Kullanarak
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 Methodunu Kullanarak
LINQ tercih edildiğinde, saymak 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
Belirtilen İndekste Liste Öğelerini Yazdırma
Belirtilen bir indekste eleman yazdırmak, o listenin o indeksindeki öğeye erişmeyi içerir. Bu, farklı konumlardaki elemanlara erişmenizi sağlar ve potansiyel indeks aralığı dışında kalan senaryolarla başa çıktığınızdan emin olmanıza yardımcı olur:
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, çeşitli senaryolarda liste öğelerini yazdırma konusunda bir temel sağlar. Yazdırma için kullanılabilecek başka kullanışlı methodlar list sınıfı tarafından sunulmaktadır.
Bazı faydalı yöntemler şunlardır:
Remove:C# listesindeki ilk uyuşmayı kaldırır.RemoveAll:Belirtilen önermeye dayalı elemanları kaldırmak için kullanılır.RemoveRange:Belirtilen indeks ve sayı parametrelerine dayalı olarak bir eleman aralığını kaldırır.Add:Listenin sonuna sadece bir eleman ekleyebilir.AddRange:Belirtilen koleksiyonun elemanlarını sona ekleyebilir.Clear:Listeden tüm elemanları kaldırır.Insert:Listenin belirtilen indekste bir eleman eklemesini sağlar.ForEach:Her elemanda belirli işlemler yapmak, örneğin her liste değerini verimli bir şekilde yazdırmak için kullanılır.ToArray:Listeyi yeni bir diziye kopyalar.
Artık ihtiyaçlarınıza en iyi uyan yaklaşımı seçebilir ve C# kodunuzun okunabilirliğini ve verimliliğini artırabilirsiniz.
String.Join Yöntemi
String.Join metodu, bir listenin elemanlarını belirli bir ayırıcı ile tek bir dizeye eklemek için kısa bir yol sağlar. Bu, listenin biçimlendirilmiş bir string temsilini oluşturmak için 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 elemanları numbers, virgül ve boşluk ile ayrılarak formate edilmiş bir çıktı haline getirilir. Yazdırmadan önce sıralama yöntemi de kullanılabilir.
Gelişmiş Senaryolar için LINQ Kullanımı
Daha karmaşık senaryolar için, elemanları yazdırmadan önce filtrelemek, dönüştürmek veya formatlamak istediğinizde, Dil Entegrasyonlu 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() metodu lambda ifadesi ile uygulanır ve sonuçları tekrar bir listeye dönüştürmek için ToList() metodu kullanılır.

Özel Nesneler ve ToString() Yöntemi
Özel nesnelerden oluşan bir listeniz varsa, nesne sınıfınızda anlamlı temsil için ToString metodunu geçersiz kılmanız önerilir. Aşağıdaki örnek, bunu nasıl yapacağınızı gösterir:
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() metodunu Person sınıfında geçersiz kılarak, sınıfın örneklerinin nasıl dizelerde temsil edileceğini kontrol edersiniz. Bu, yazdırdığınızda listenizin okunabilirliğini artırır.

IronPrint'i Tanıtıyoruz - C# Baskı Kütüphanesi
IronPrint, doğruluk, kullanım kolaylığı ve hız önceliğiyle güçlü ve dağıtılabilir bir baskı kütüphanesi olarak öne çıkıyor. Çoklu platform desteği ve çeşitli belge formatlarıyla uyumluluğu, uygulamalarında verimli baskı çözümleri arayan .NET geliştiricileri için değerli bir araç haline getiriyor.

Başlıca Özellikler
İşte C# uygulamalarında fiziksel belgelerin yazdırılması için IronPrint'i öne çıkaran bazı önemli anahtar özellikler:
1. Çoklu 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 (App & Kütüphane)
2. Desteklenen Formatlar
- PDF, PNG, HTML, TIFF, GIF, JPEG, IMAGE ve BITMAP dahil olmak üzere çeşitli belge formatlarını işleyebilir.
- Belge gereksinimlerine göre baskı ayarlarını özelleştirin.
3. Kolay Kurulum
IronPrint kütüphanesini NuGet Paket Yöneticisi Konsolu kullanarak yükleyin:
Install-Package IronPrint
Alternatif olarak, Visual Studio kullanarak projenize yükleyebilirsiniz. Çözüm Gezgini'nde projeye sağ tıklayın ve Çözümler için NuGet Paket Yöneticisi'ni Yönet'e tıklayın. NuGet inceleme sekmesinde, "IronPrint" için arama yapın, IronPrint paketinin en son sürümünü arama sonuçlarından seçin ve ardından projelerinize eklemek için Yükle butonuna tıklayın.
IronPrint ile Yazdırma: Kod Örnekleri
1. Belge Yazdırma
IronPrint, belgelerin sessizce yazdırılmasını basit bir Print metodu ile sunar. Fiziksel bir yazıcı mevcut değilse, işletim sistemi tarafından belirtilen varsayılan yazıcıyı kullanarak 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. Dialog ile Yazdırma
Ayrıca, yazdırma sırasında daha iyi kontrol için print diyalog kutusunu gösteren özel bir metod sunar. ShowPrintDialogAsync metodu ile de asenkron olarak yazdırmak mümkündür.
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 hassas 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ıf ve yöntemler hakkında daha iyi bir anlayış edinmek için lütfen API Referansı sayfasını ziyaret edin.
Sonuç
C#'ta bir liste yazdırmak, verilerin karmaşıklığına ve istenen çıktı formatına göre doğru yöntemi seçmeyi içerir. Basit bir döngü, String.Join(), LINQ kullanarak veya özel nesneler için ToString() metodunu özelleştirerek, bu yaklaşımları anlamak C# uygulamalarınızda listelerin içeriklerini etkili bir şekilde göstermenizi sağlar. Bu tekniklerle deney yapın ve özel kullanım senaryonuza en uygun olanı seçin.
IronPrint doğruluk, kullanım kolaylığı ve hız istiyorsanız, başvurmanız gereken baskı kütüphanesidir. WebApps'i inşa ediyor olun, MAUI, Avalonia ile çalışıyor olun veya herhangi bir .NET ile ilgili bir şey yapıyor olun, IronPrint sizin arkanızdadır. IronPrint hakkında daha detaylı bilgi için lütfen bu dokümantasyon sayfasını ziyaret edin.
IronPrint ücretli bir kütüphane, ancak bir ücretsiz deneme bulunmaktadır. Kütüphaneyi buradan indirin ve deneyin!
Sıkça Sorulan Sorular
C#'da bir listeyi nasıl yazdırabilirim?
IronPrint kullanarak, bir listeyi C#'da yazdırmak için foreach veya for döngüsü ile liste elemanlarını döngüye alabilir ve biçimlendirilmiş çıktıyı yazdırmak için IronPrint'e iletebilirsiniz.
C#'da dinamik dizi kullanmanın faydaları nelerdir?
C#'daki dinamik diziler veya listeler, boyutlarını artırıp küçültebildikleri için esneklik sunar. Koleksiyonları verimli bir şekilde yönetme ve işleme imkanı tanıyan System.Collections.Generic ad alanının bir parçasıdırlar.
Yazdırmak için bir listeyi C#'da nasıl tersine çevirebilirim?
Bir listeyi ters sırayla yazdırmak için Reverse yöntemini veya LINQ'un OrderByDescending yöntemini kullanabilir ve ardından tersine çevrilmiş listeyi IronPrint ile yazdırabilirsiniz.
Bir listeyi yazdırmak için nasıl bir dize olarak biçimlendirebilirim?
String.Join yöntemini kullanarak liste elemanlarını belirtilen bir ayırıcı ile tek bir biçimlendirilmiş dizeye birleştirebilirsiniz. Bu biçimlendirilmiş dizgi daha sonra IronPrint kullanılarak yazdırılabilir.
Özel nesneleri yazdırmada ToString yönteminin rolü nedir?
ToString yöntemini geçersiz kılarak, özel nesne örneklerinin dizgeler olarak nasıl temsil edileceğini tanımlayabilir ve bu da IronPrint ile yazdırıldığında okunabilirliği artırır.
Bir listeden belirli öğeleri C#'da nasıl filtreleyip yazabilirim?
LINQ yöntemleri, liste içinden belirli öğeleri filtreleme ve seçme amacıyla Where gibi 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 yüklemek için NuGet Paket Yöneticisi Konsolu ile Install-Package IronPrint komutunu ya da Visual Studio'nun NuGet Paket Yöneticisi'ni kullanabilirsiniz.
IronPrint, .NET geliştiricilerine hangi özellikleri sunar?
IronPrint, çapraz platform uyumluluğu, çeşitli belge formatları için destek, sessiz yazdırma, yazdırma diyalogları ve özelleştirilebilir yazdırma ayarları sunar ve bu nedenle .NET geliştiricileri için güçlü bir seçenek oluşturur.




