
C# Her Bir (Geliştiriciler İçin Nasıl Çalışır)
Bu öğreticide, geliştiriciler için temel bir araç olan "C# foreach" döngüsünü ele alacağız. foreach döngüsü, bir koleksiyon boyunca yineleme sürecini basitleştirir ve her bir öğe üzerinde işlem yapmayı, temel ayrıntılar hakkında endişe duymadan kolaylaştırır. foreach'nin önemi, kullanım durumları ve C# kodunuzda nasıl uygulanacağı üzerinde konuşacağız.
foreach Döngüsüne Giriş
foreach döngüsü, geliştiriciler için koleksiyonlar arasında özlü ve okunabilir bir şekilde yineleme yapabilmeleri için güçlü bir araçtır. Bu, kodu basitleştirir ve koleksiyon öğelerinin indeksini veya sayısını elle yönetme gereği olmadığından hata olasılıklarını azaltır. Okunabilirlik ve sadelik açısından, foreach döngüsü genellikle geleneksel for döngüsünden tercih edilir.
foreach için kullanım durumları şunlardır:
- Bir koleksiyondaki değerleri toplama
- Bir koleksiyonda bir öğe arama
- Bir koleksiyondaki öğeleri değiştirme
- Bir koleksiyonun her bir elemanı üzerinde işlem yapmak
Koleksiyonları Anlamak
C# dilinde, bir grup öğeyi tek bir nesnede depolamak için kullanılan farklı türde koleksiyonlar bulunmaktadır. Bunlar arasında diziler, listeler, sözlükler ve daha fazlası bulunur. foreach döngüsü, IEnumerable veya IEnumerable<t> arayüzünü uygulayan herhangi bir koleksiyonla kullanılabilecek kullanışlı bir araçtır.
Yaygın bazı koleksiyon türleri şunlardır:
- Diziler: Aynı veri tipine sahip elemanların sabit boyutlu koleksiyonu.
- Listeler: Aynı veri türüne sahip öğelerin dinamik bir koleksiyonu.
- Sözlükler: Her anahtarın benzersiz olduğu anahtar-değer çiftlerinden oluşan bir koleksiyon.
System.Collections.Generic namespace'i koleksiyonlarla çalışmak için çeşitli türler içerir.
Implementing the foreach statement in C#
Artık koleksiyonlar ve foreach döngüsü hakkında temel bir anlayışa sahip olduğumuza göre, gelin C#'deki sözdizimine bakalım ve nasıl çalıştığını görelim.
foreach Döngüsünün Sözdizimi
foreach (variableType variableName in collection)
{
// Code to execute for each item
}For Each variableName As variableType In collection
' Code to execute for each item
Next variableNameBurada variableType, koleksiyondaki öğelerin veri türünü temsil eder, variableName, döngüdeki mevcut öğeye (döngü değişkeni) verilen addır ve collection, yinelemek istediğiniz koleksiyona atıfta bulunur.
Örnek
Bir tamsayı listesine sahip olduğumuzu ve listedeki tüm elemanların toplamını bulmak istediğimizi düşünelim.
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// Create a list of integers
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// Initialize a variable to store the sum
int sum = 0;
// Iterate through the list using foreach loop
foreach (int number in numbers)
{
sum += number;
}
// Print the sum
Console.WriteLine("The sum of the elements is: " + sum);
}
}Imports System
Imports System.Collections.Generic
Friend Class Program
Shared Sub Main()
' Create a list of integers
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
' Initialize a variable to store the sum
Dim sum As Integer = 0
' Iterate through the list using foreach loop
For Each number As Integer In numbers
sum += number
Next number
' Print the sum
Console.WriteLine("The sum of the elements is: " & sum)
End Sub
End ClassÇıktı
Döngü çalıştırıldığında, aşağıdaki çıktıyı verir.
The sum of the elements is: 15
Yukarıdaki örnekte, önce numbers adlı bir tamsayı listesi oluşturuyoruz ve elemanların toplamını depolamak için sum adlı bir değişkeni başlatıyoruz. Daha sonra, listeyi geçmek ve her elemanın değerini toplamaya eklemek için foreach döngüsünü kullanıyoruz. Son olarak, toplamı konsola yazdırıyoruz. Bu yöntem, benzer şekilde diğer koleksiyonlar üzerinde de yazdırmak veya işlem yapmak için uyarlanabilir.
Varyasyonlar ve En İyi Uygulamalar
Artık foreach döngüsünün nasıl kullanılacağı hakkında temel bir anlayışa sahip olduğumuza göre, gelin bazı varyasyonlar ve en iyi uygulamalar üzerinde tartışalım.
Sadece Okuma Yinelemesi: foreach döngüsü, sadece okuma yinelemesi için en uygunudur, çünkü iterasyon sırasında koleksiyonu değiştirmek beklenmedik sonuçlara veya çalışma zamanı hatalarına yol açabilir. Eğer iterasyon sırasında koleksiyonu değiştirmeniz gerekiyorsa, geleneksel for döngüsünü kullanmayı veya istenen değişikliklerle yeni bir koleksiyon oluşturmayı düşünün.
var anahtar kelimesini kullanma: Koleksiyondaki öğelerin veri türünü açıkça belirtmek yerine, derleyicinin veri türünü çıkarmasına izin vermek için var anahtar kelimesini kullanabilirsiniz. Bu, kodu daha özlü ve bakımını kolay hale getirebilir.
Örnek:
foreach (var number in numbers)
{
Console.WriteLine(number);
}For Each number In numbers
Console.WriteLine(number)
Next numberSözlükler arasında iterasyon: Sözlükler arasında iterasyon yapmak için bir foreach döngüsü kullanırken, KeyValuePair yapısıyla çalışmanız gerekecek. Bu yapı, sözlükteki bir anahtar-değer çiftini temsil eder.
Örnek:
Dictionary<string, int> ageDictionary = new Dictionary<string, int>
{
{ "Alice", 30 },
{ "Bob", 25 },
{ "Charlie", 22 }
};
foreach (KeyValuePair<string, int> entry in ageDictionary)
{
Console.WriteLine($"{entry.Key} is {entry.Value} years old.");
}Dim ageDictionary As New Dictionary(Of String, Integer) From {
{"Alice", 30},
{"Bob", 25},
{"Charlie", 22}
}
For Each entry As KeyValuePair(Of String, Integer) In ageDictionary
Console.WriteLine($"{entry.Key} is {entry.Value} years old.")
Next entryLINQ ve foreach: LINQ (Language Integrated Query), C#'de veriyi daha bildirimli bir şekilde sorgulama ve manipüle etmeyi sağlayan güçlü bir özelliktir. Daha anlamlı ve verimli kod yaratmak için LINQ'yu foreach döngüsü ile kullanabilirsiniz.
Örnek:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// Use LINQ to filter out even numbers
var evenNumbers = numbers.Where(n => n % 2 == 0);
// Iterate through the even numbers using foreach loop
foreach (var number in evenNumbers)
{
Console.WriteLine(number);
}
}
}Imports System
Imports System.Collections.Generic
Imports System.Linq
Friend Class Program
Shared Sub Main()
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
' Use LINQ to filter out even numbers
Dim evenNumbers = numbers.Where(Function(n) n Mod 2 = 0)
' Iterate through the even numbers using foreach loop
For Each number In evenNumbers
Console.WriteLine(number)
Next number
End Sub
End ClassIronPDF İşlevselliğini C# foreach Eğitimine Ekleme
Bu bölümde, C# 'foreach' döngüsü konusundaki eğitimimize, C# içinde PDF dosyalarıyla çalışmak için popüler bir kütüphane olan IronPDF'yi tanıtarak genişleteceğiz. Veri koleksiyonuna dayalı bir PDF raporu oluşturmak için foreach döngüsünü IronPDF ile birleştirerek nasıl kullanacağımızı göstereceğiz.
IronPDF Tanıtımı
IronPDF, C#'ta PDF dosyaları oluşturmak, düzenlemek ve içeriğini çıkartmak için güçlü bir kütüphanedir. PDF belgeleriyle çalışmaya yönelik kullanımı kolay bir API sunar, bu da uygulamalarına PDF işlevselliği eklemek isteyen geliştiriciler için mükemmel bir seçenektir.
IronPDF'nin bazı anahtar özellikleri şunlardır:
- HTML, URL'ler ve görüntülerden PDF oluşturma
- Mevcut PDF belgelerini düzenleme
- PDF'lerden metin ve görüntüleri çıkarma
- PDF'lere açıklama, form alanları ve şifreleme ekleme
Installing IronPDF
IronPDF ile çalışmaya başlamak için, IronPDF NuGet paketini yüklemeniz gerekecek. Bunu IronPDF belgelerindeki talimatları takip ederek yapabilirsiniz.
IronPDF ve foreach ile PDF Raporu Oluşturma
Bu örnekte, IronPDF kütüphanesini ve foreach döngüsünü kullanarak, adları ve fiyatları içeren bir ürün listesi PDF raporu oluşturacağız.
Öncelikle ürünleri temsil etmek için basit bir Product sınıfı oluşturalım:
public class Product
{
public string Name { get; set; }
public decimal Price { get; set; }
public Product(string name, decimal price)
{
Name = name;
Price = price;
}
}Public Class Product
Public Property Name() As String
Public Property Price() As Decimal
Public Sub New(ByVal name As String, ByVal price As Decimal)
Me.Name = name
Me.Price = price
End Sub
End ClassArdından, PDF raporunu oluşturmak için Product nesnelerinden oluşan bir liste oluşturalım:
List<Product> products = new List<Product>
{
new Product("Product A", 29.99m),
new Product("Product B", 49.99m),
new Product("Product C", 19.99m),
};Dim products As New List(Of Product) From {
New Product("Product A", 29.99D),
New Product("Product B", 49.99D),
New Product("Product C", 19.99D)
}Artık ürün bilgilerini içeren bir PDF raporu oluşturmak için IronPDF ve foreach döngüsünü kullanabiliriz:
using System;
using System.Collections.Generic;
using IronPdf;
class Program
{
static void Main()
{
// Create a list of products
List<Product> products = new List<Product>
{
new Product("Product A", 29.99m),
new Product("Product B", 49.99m),
new Product("Product C", 19.99m),
};
// Initialize an HTML string to store the report content
string htmlReport = "<table><tr><th>Product Name</th><th>Price</th></tr>";
// Iterate through the list of products using foreach loop
foreach (var product in products)
{
// Add product information to the HTML report
htmlReport += $"<tr><td>{product.Name}</td><td>${product.Price}</td></tr>";
}
// Close the table tag in the HTML report
htmlReport += "</table>";
// Create a new instance of the HtmlToPdf class
var htmlToPdf = new ChromePdfRenderer();
// Generate the PDF from the HTML report
var PDF = htmlToPdf.RenderHtmlAsPdf(htmlReport);
// Save the PDF to a file
PDF.SaveAs("ProductReport.PDF");
// Inform the user that the PDF has been generated
Console.WriteLine("ProductReport.PDF has been generated.");
}
}Imports System
Imports System.Collections.Generic
Imports IronPdf
Friend Class Program
Shared Sub Main()
' Create a list of products
Dim products As New List(Of Product) From {
New Product("Product A", 29.99D),
New Product("Product B", 49.99D),
New Product("Product C", 19.99D)
}
' Initialize an HTML string to store the report content
Dim htmlReport As String = "<table><tr><th>Product Name</th><th>Price</th></tr>"
' Iterate through the list of products using foreach loop
For Each product In products
' Add product information to the HTML report
htmlReport &= $"<tr><td>{product.Name}</td><td>${product.Price}</td></tr>"
Next product
' Close the table tag in the HTML report
htmlReport &= "</table>"
' Create a new instance of the HtmlToPdf class
Dim htmlToPdf = New ChromePdfRenderer()
' Generate the PDF from the HTML report
Dim PDF = htmlToPdf.RenderHtmlAsPdf(htmlReport)
' Save the PDF to a file
PDF.SaveAs("ProductReport.PDF")
' Inform the user that the PDF has been generated
Console.WriteLine("ProductReport.PDF has been generated.")
End Sub
End Class
Sonuç
Bu eğitim boyunca, "C# foreach" döngüsünün temellerini, önemini, kullanım durumlarını ve kodunuza nasıl uygulayacağınızı inceledik. Ayrıca, C#'deki PDF dosyaları ile çalışma konusunda güçlü bir kütüphane olan IronPDF'yi tanıttık ve veri koleksiyonuna dayalı bir PDF raporu oluşturmak için foreach döngüsünü IronPDF ile nasıl kullanacağımızı gösterdik.
Öğrenmeye ve becerilerinizi geliştirmeye devam edin, yakında foreach döngüsünün ve diğer C# özelliklerinin tam potansiyelini kullanarak sağlam ve verimli uygulamalar yaratabileceksiniz. IronPDF, kütüphaneyi test etmek için ücretsiz bir deneme sunuyor. Satın almaya karar verirseniz, IronPDF lisansı $999'den başlar.

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


