.NET-HILFE

C# für jeden (Wie IT für Entwickler funktioniert)

Veröffentlicht 16. Mai 2023
Teilen Sie:

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.

Einführung in die foreach-Schleife

Die "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:

  • Summierung von Werten in einer Sammlung
  • Suche nach einem Element in einer Sammlung
  • Ändern von Elementen in einer Sammlung
  • Durchführen von Aktionen für jedes Element einer Sammlung

Sammlungen verstehen

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:

  • Arrays: Eine Sammlung von Elementen mit fester Größe und gleichem Datentyp.
  • Listen: Eine dynamische Sammlung von Elementen mit demselben Datentyp.
  • 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.

Implementierung der foreach-Anweisung in C##

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.

Syntax der For Each-Schleife


    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
VB   C#

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.

Beispiel

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<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 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<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 for each loop
            foreach (int number in numbers)
            {
                sum += number;
            }

            // Print the sum
            Console.WriteLine("The sum of the elements is: " + sum);
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Ausgabe

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
VB   C#

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.

Variationen und bewährte Praktiken

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
VB   C#

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<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.");
    }

    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 entry
VB   C#

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<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 for each loop
            foreach (var number in evenNumbers)
            {
                Console.WriteLine(number);
            }

    using System;
    using System.Collections.Generic;
    using System.Linq;
            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 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(Of Integer) 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
VB   C#

Hinzufügen der IronPDF-Funktionalität zum C# for each Tutorial

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.

Einführung von IronPDF

IronPDF-Dokumentation 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:

Installation von IronPDF

Um mit IronPDF zu arbeiten, müssen Sie das IronPDF NuGet-Paket installieren. Befolgen Sie dazu die Anweisungen unterInstallation von IronPDF.

Erzeugen eines PDF-Berichts mit IronPDF und für jeden

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
VB   C#

Als nächstes erstellen wir eine Liste von Produkt-Objekten, um den PDF-Bericht zu erstellen:


    List<Product> products = new List<Product>
    {
        new Product("Product A", 29.99m),
        new Product("Product B", 49.99m),
        new Product("Product C", 19.99m),
    };

    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)
}
VB   C#

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<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 for each 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.");

    using System;
    using System.Collections.Generic;
    using IronPdf;

    // 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 for each 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

	' Create a list of products
	Private 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
	Private htmlReport As String = "<table><tr><th>Product Name</th><th>Price</th></tr>"

	' Iterate through the list of products using for each 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.")
VB   C#

C# For Each(Wie es für Entwickler funktioniert) Abbildung 1 - Ausgabeergebnis

Schlussfolgerung

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 eineIronPDF Kostenlose Testversion zum Testen der Bibliothek. Wenn Sie sich für den Kauf entscheiden, beginnt die IronPDF-Lizenz bei $749.

< PREVIOUS
C# String Replace (Wie es für Entwickler funktioniert)
NÄCHSTES >
Try/Catch in C# (Wie es für Entwickler funktioniert)

Sind Sie bereit, loszulegen? Version: 2024.12 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,810,873 Lizenzen anzeigen >