Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
In diesem Tutorial werden wir die "C# foreach"-Schleife behandeln, ein wichtiges Werkzeug für Entwickler. Die "Foreach"-Schleife vereinfacht den Prozess der Iteration durch eine Sammlung und erleichtert die Durchführung von Operationen an jedem Element, ohne sich um die zugrunde liegenden Details zu kümmern. Wir besprechen die Bedeutung von foreach
, seine Anwendungsfälle und wie Sie es in Ihrem C#-Code implementieren.
foreach
-SchleifeDie "Foreach"-Schleife ist ein leistungsfähiges Werkzeug für Entwickler, um in übersichtlicher und lesbarer Weise durch Sammlungen zu iterieren. Es vereinfacht den Code und verringert die Fehlerwahrscheinlichkeit, da der Index oder die Anzahl der Sammlungselemente nicht manuell verwaltet werden muss. Was die Variablendeklarationen betrifft, so hat die "Foreach"-Schleife fünf Variablendeklarationen, während die "For"-Schleife nur drei Variablendeklarationen hat.
Anwendungsfälle für foreach
umfassen:
Es gibt verschiedene Arten von Sammlungen in C#, die verwendet werden, um eine Gruppe von Elementen in einem einzigen Objekt zu speichern. Dazu gehören Arrays, Listen, Wörterbücher und vieles mehr. Die "Foreach"-Schleife ist ein nützliches Werkzeug, das mit jeder Sammlung verwendet werden kann, die die Schnittstelle IEnumerable oder IEnumerable implementiert.
Einige gängige Sammlungsarten sind:
Wörterbücher: Eine Sammlung von Schlüssel-Wert-Paaren, wobei jeder Schlüssel eindeutig ist.
Der Namespace System.Collections.Generic
enthält die Erweiterungsmethode ForEach
, die mit allen eingebauten Sammlungsklassen verwendet werden kann.
Nachdem wir nun ein grundlegendes Verständnis von Sammlungen und der for each-Schleife haben, wollen wir uns mit der Syntax beschäftigen und sehen, wie sie in C# funktioniert.
foreach (variableType variableName in collection)
{
// Code to execute for each item
}
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 variableName
Hier steht "Variablentyp" für den Datentyp der Elemente in der Sammlung, "Variablenname" ist der Name, der dem aktuellen Element in der Schleife gegeben wird (schleifenvariable)und "Sammlung" bezieht sich auf die Sammlung, die Sie durchlaufen wollen.
Betrachten wir ein Beispiel, bei dem wir eine Liste von ganzen Zahlen haben und die Summe aller Elemente in der Liste finden wollen.
using System;
using System.Collections.Generic;
// Create a list of integers
List numbers = new List { 1, 2, 3, 4, 5 };
// Initialize a variable to store the sum
int sum = 0;
// Iterate through the list using for each loop
foreach (int number in numbers)
{
sum += number;
}
// Print the sum
Console.WriteLine("The sum of the elements is: " + sum);
using System;
using System.Collections.Generic;
// Create a list of integers
List numbers = new List { 1, 2, 3, 4, 5 };
// Initialize a variable to store the sum
int sum = 0;
// Iterate through the list using for each 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
' Create a list of integers
Private numbers As New List From {1, 2, 3, 4, 5}
' Initialize a variable to store the sum
Private sum As Integer = 0
' Iterate through the list using for each loop
For Each number As Integer In numbers
sum += number
Next number
' Print the sum
Console.WriteLine("The sum of the elements is: " & sum)
Wenn die Schleife ausgeführt wird, gibt sie die folgende Ausgabe.
The sum of the elements is: 15
The sum of the elements is: 15
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'The sum @of the elements is: 15
Im obigen Beispiel erstellen wir zunächst eine Liste ganzer Zahlen mit dem Namen "Zahlen" und initialisieren eine Variable "Summe", um die "Summe" der Elemente zu speichern. Dann verwenden wir die foreach-Schleife, um die Liste zu durchlaufen und den Wert eines jeden Elements zur Summe hinzuzufügen. Zum Schluss geben wir die Summe auf der Konsole aus. Wir können auch ein Array ausdrucken, indem wir die foreach-Schleife auf ähnliche Weise verwenden.
Nachdem wir nun ein grundlegendes Verständnis für die Verwendung der for each-Schleife haben, wollen wir nun einige Variationen und bewährte Verfahren diskutieren.
Nur-Lese-Iteration: Die for each-Schleife eignet sich am besten für die Nur-Lese-Iteration, da eine Änderung der Sammlung während der Iteration zu unerwarteten Ergebnissen oder Laufzeitfehlern führen kann. Wenn Sie die Sammlung während der Iteration ändern müssen, sollten Sie eine traditionelle for-Schleife verwenden oder eine neue Sammlung mit den gewünschten Änderungen erstellen.
Verwendung des Schlüsselworts var: Anstatt den Datentyp der Elemente in der Sammlung explizit anzugeben, können Sie das Schlüsselwort "var" verwenden, damit der Compiler auf den Datentyp schließen kann. Dadurch kann der Code übersichtlicher und leichter zu pflegen werden.
Beispiel:
foreach (var number in numbers)
{
Console.WriteLine(number);
}
foreach (var number in numbers)
{
Console.WriteLine(number);
}
For Each number In numbers
Console.WriteLine(number)
Next number
Iterieren durch Wörterbücher: Wenn Sie eine for each-Schleife verwenden, um durch Wörterbücher zu iterieren, müssen Sie mit der Struktur KeyValuePair
arbeiten. Diese Struktur stellt ein Schlüssel-Wert-Paar in einem Wörterbuch dar.
Beispiel:
Dictionary ageDictionary = new Dictionary
{
{ "Alice", 30 },
{ "Bob", 25 },
{ "Charlie", 22 }
};
foreach (KeyValuePair entry in ageDictionary)
{
Console.WriteLine($"{entry.Key} is {entry.Value} years old.");
}
Dictionary ageDictionary = new Dictionary
{
{ "Alice", 30 },
{ "Bob", 25 },
{ "Charlie", 22 }
};
foreach (KeyValuePair entry in ageDictionary)
{
Console.WriteLine($"{entry.Key} is {entry.Value} years old.");
}
Dim ageDictionary As New Dictionary From {
{ "Alice", 30 },
{ "Bob", 25 },
{ "Charlie", 22 }
}
For Each entry As KeyValuePair In ageDictionary
Console.WriteLine($"{entry.Key} is {entry.Value} years old.")
Next entry
LINQ und für jeden: LINQ (Sprache Integrierte Abfrage) ist eine leistungsstarke Funktion in C#, mit der Sie Daten auf deklarative Weise abfragen und manipulieren können. Sie können LINQ
mit der for each-Schleife verwenden, um aussagekräftigeren und effizienteren Code zu erstellen.
Beispiel:
using System;
using System.Collections.Generic;
using System.Linq;
List numbers = new List { 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 for each loop
foreach (var number in evenNumbers)
{
Console.WriteLine(number);
}
using System;
using System.Collections.Generic;
using System.Linq;
List numbers = new List { 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 for each loop
foreach (var number in evenNumbers)
{
Console.WriteLine(number);
}
Imports System
Imports System.Collections.Generic
Imports System.Linq
Private numbers As New List From {1, 2, 3, 4, 5}
' Use LINQ to filter out even numbers
Private evenNumbers = numbers.Where(Function(n) n Mod 2 = 0)
' Iterate through the even numbers using for each loop
For Each number In evenNumbers
Console.WriteLine(number)
Next number
In diesem Abschnitt werden wir unser Tutorial über die "C# for each"-Schleife erweitern, indem wir IronPDF vorstellen, eine beliebte Bibliothek für die Arbeit mit PDF-Dateien in C#. Wir werden demonstrieren, wie man die foreach-Schleife in Verbindung mit IronPDF verwendet, um einen PDF-Bericht auf der Grundlage einer Datensammlung zu erstellen.
IronPDF ist eine leistungsstarke Bibliothek zum Erstellen, Bearbeiten und Extrahieren von Inhalten aus PDF-Dateien in C#. Es bietet eine benutzerfreundliche API für die Arbeit mit PDF-Dokumenten und ist damit eine ausgezeichnete Wahl für Entwickler, die PDF-Funktionen in ihre Anwendungen integrieren müssen.
Zu den wichtigsten Funktionen von IronPDF gehören:
Um mit IronPDF zu arbeiten, müssen Sie das IronPDF NuGet-Paket installieren. Sie können dies tun, indem Sie den folgenden Befehl in Ihrem Projektverzeichnis ausführen:
Install-Package IronPdf
In diesem Beispiel werden wir die IronPDF-Bibliothek und die for each-Schleife verwenden, um einen PDF-Bericht mit einer Liste von Produkten, einschließlich ihrer Namen und Preise, zu erstellen.
Erstellen wir zunächst eine einfache Klasse Produkt, um die Produkte darzustellen:
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 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 Class
Als nächstes erstellen wir eine Liste von Produkt-Objekten, um den PDF-Bericht zu erstellen:
List products = new List
{
new Product("Product A", 29.99m),
new Product("Product B", 49.99m),
new Product("Product C", 19.99m),
};
List products = new List
{
new Product("Product A", 29.99m),
new Product("Product B", 49.99m),
new Product("Product C", 19.99m),
};
Dim products As New List From {
New Product("Product A", 29.99D),
New Product("Product B", 49.99D),
New Product("Product C", 19.99D)
}
Jetzt können wir IronPDF und die for each-Schleife verwenden, um einen PDF-Bericht mit den Produktinformationen zu erstellen:
using System;
using System.Collections.Generic;
using IronPdf;
// Create a list of products
List products = new List
{
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 = "Product ReportNamePrice";
// Iterate through the list of products using for each loop
foreach (var product in products)
{
// Add product information to the HTML report
htmlReport += $"{product.Name}${product.Price}";
}
// Close the table tag in the HTML report
htmlReport += "";
// 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.");
using System;
using System.Collections.Generic;
using IronPdf;
// Create a list of products
List products = new List
{
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 = "Product ReportNamePrice";
// Iterate through the list of products using for each loop
foreach (var product in products)
{
// Add product information to the HTML report
htmlReport += $"{product.Name}${product.Price}";
}
// Close the table tag in the HTML report
htmlReport += "";
// 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
' Create a list of products
Private products As New List 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
Private htmlReport As String = "Product ReportNamePrice"
' Iterate through the list of products using for each loop
For Each product In products
' Add product information to the HTML report
htmlReport &= $"{product.Name}${product.Price}"
Next product
' Close the table tag in the HTML report
htmlReport &= ""
' 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.")
In diesem Lernprogramm haben wir die Grundlagen der "C# for each"-Schleife, ihre Bedeutung, Anwendungsfälle und ihre Implementierung in Ihrem Code untersucht. Wir haben auch IronPDF vorgestellt, eine leistungsstarke Bibliothek für die Arbeit mit PDF-Dateien in C#, und demonstriert, wie man die for each-Schleife in Verbindung mit IronPDF verwendet, um einen PDF-Bericht auf der Grundlage einer Datensammlung zu erstellen.
Wenn Sie weiter lernen und Ihre Fähigkeiten ausbauen, werden Sie bald in der Lage sein, das volle Potenzial der for each-Schleife und anderer C#-Funktionen zu nutzen, um robuste und effiziente Anwendungen zu erstellen. IronPDF bietet kostenloser Test zum Testen der Bibliothek. Wenn Sie sich für den Kauf entscheiden, beginnt die IronPDF-Lizenz bei $749.
9 .NET API-Produkte für Ihre Bürodokumente