.NETヘルプ C# For Each (開発者向けの仕組み) Curtis Chau 更新日:7月 28, 2025 Download IronPDF NuGet Download テキストの検索と置換 テキストと画像のスタンプ Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article このチュートリアルでは、開発者にとっての必須ツールである「C# foreach」ループについて解説します。 foreachループは、コレクションを反復処理するプロセスを簡略化し、各アイテムに対する操作をより簡単に行えるようにします。 foreachの重要性、使用例、およびC#コードでの実装方法について説明します。 foreachループの導入 foreachループは、コレクションを簡素で読みやすい方法で反復処理するための強力なツールです。 コードを簡素化し、インデックスやコレクションアイテムの数を手動で管理する必要がないため、エラーの可能性を減少させます。 可読性と簡潔さにおいて、foreachループは従来のforループよりもよく使用されます。 foreachの使用例には以下が含まれます: コレクション内の値の合計を算出する コレクション内のアイテムを検索する コレクション内の要素を変更する コレクションの各要素に対して操作を行う コレクションの理解 C#には、1つのオブジェクトにグループ化されたアイテムを格納するために使用されるさまざまなタイプのコレクションがあります。 これには配列、リスト、ディクショナリなどが含まれます。 foreachループは、IEnumerableまたはIEnumerable<T>インターフェイスを実装する任意のコレクションで使用できる便利なツールです。 一般的なコレクションタイプには以下が含まれます: 配列:同じデータ型の要素から成る固定サイズのコレクション。 リスト:同じデータ型の要素から成る動的コレクション。 ディクショナリ:キーがユニークなキーと値のペアから成るコレクション。 System.Collections.Generic名前空間には、コレクションを操作するためのさまざまな型が含まれています。 C#でのforeach文の実装 コレクションとforeachループの基本を理解したので、構文について確認し、C#での使い方を見てみましょう。 foreachループの構文 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 $vbLabelText $csharpLabel ここで、variableTypeはコレクション内のアイテムのデータ型を表し、variableNameはループ内の現在のアイテムに付けられる名前(ループ変数)で、collectionは反復処理したいコレクションを指します。 例 整数のリストがあり、そのリストのすべての要素の合計を求めたいという例を考えましょう。 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); } } 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 $vbLabelText $csharpLabel 出力 ループが実行されると、以下の出力が得られます。 The sum of the elements is: 15 上記の例では、まずnumbersという整数のリストを作成し、要素の合計を格納するsum変数を初期化します。 それから、foreachループを使用してリストを反復処理し、各要素の値を合計に加えます。 最後に、コンソールに合計を出力します。 この方法は、他のコレクションに対しても同様に印刷や操作を適応できます。 バリエーションとベストプラクティス foreachループの使い方の基本を理解したので、いくつかのバリエーションとベストプラクティスについて説明しましょう。 読み取り専用の反復:foreachループは、コレクションを反復処理しながら変更すると予期しない結果やランタイムエラーが発生する可能性があるため、読み取り専用の反復に最適です。 反復中にコレクションを変更する必要がある場合は、従来のforループを使用するか、必要な変更を加えた新しいコレクションを作成することを検討してください。 varキーワードの使用:コレクション内の要素のデータ型を明示的に指定する代わりに、varキーワードを使用してコンパイラがデータ型を推論できるようにします。 これにより、コードがより簡潔で保守しやすくなります。 例: 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 $vbLabelText $csharpLabel ディクショナリの反復処理:ディクショナリを反復処理するためにforeachループを使用する際には、KeyValuePair構造体を操作する必要があります。 この構造体は、ディクショナリ内のキーと値のペアを表します。 例: 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 $vbLabelText $csharpLabel LINQとforeach:LINQ(Language Integrated Query)は、より宣言的な方法でデータをクエリし操作できる、C#における強力な機能です。 foreachループとLINQを組み合わせて、より表現力豊かで効率的なコードを作成することができます。 例: 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); } } } 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 Class $vbLabelText $csharpLabel C#foreachチュートリアルにIronPDF機能を追加する このセクションでは、「C# foreach」ループのチュートリアルに、C#でPDFファイルを操作するための人気のあるライブラリであるIronPDFを導入します。 IronPDFとforeachループを組み合わせて、データのコレクションに基づいてPDFレポートを生成する方法を示します。 IronPDFの紹介 IronPDFはC#でPDFファイルを作成、編集、コンテンツを抽出するための強力なライブラリです。 PDFドキュメントを扱うための使いやすいAPIを提供し、アプリケーションにPDF機能を組み込む必要がある開発者にとって優れた選択肢です。 IronPDFの主な機能には以下が含まれます: HTML、URL、画像からPDFを生成 既存のPDFドキュメントを編集 PDFからテキストや画像を抽出 PDFに注釈、フォームフィールド、暗号化を追加 IronPDFのインストール IronPDFを利用開始するには、IronPDF NuGetパッケージをインストールする必要があります。 IronPDFのドキュメントに記載されている手順に従ってこれを行うことができます。 IronPDFとforeachを使用したPDFレポートの生成 この例では、IronPDFライブラリとforeachループを使用して、製品名や価格を含む製品リストのPDFレポートを作成します。 まず、製品を表すためのシンプルなProductクラスを作成します: 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 $vbLabelText $csharpLabel 次に、Productオブジェクトのリストを作成して、PDFレポートを生成します: 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) } $vbLabelText $csharpLabel 次に、IronPDFとforeachループを使用して、製品情報を含むPDFレポートを生成します: 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."); } } 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 $vbLabelText $csharpLabel !C# For Each(開発者用の使い方)図1 - 出力結果 結論 このチュートリアルを通じて、「C# foreach」ループの基本、重要性、使用例、およびコードへの実装方法について探求しました。 また、PDFファイルを操作するための強力なライブラリであるIronPDFを紹介し、IronPDFとforeachループを組み合わせてデータのコレクションに基づいたPDFレポートを生成する方法を示しました。 学習を続け、スキルを構築し続けることで、foreachループやその他のC#機能を最大限に活用し、強力で効率的なアプリケーションを作成できるようになります。 IronPDFは、ライブラリをテストするための無料トライアルを提供しています。 購入を決めた場合、IronPDFライセンスは$799から始まります。 よくある質問 C#のforeachループとは何ですか? C#のforeachループは、配列、リスト、辞書などのコレクションを反復処理するプロセスを簡略化するプログラミング構造です。インデックスやカウントを管理せずに、コレクション内の各アイテムに操作を実行することができます。 C#のforeachループを使ってPDFレポートをどう作成しますか? データのコレクション(例:製品リスト)を反復処理することで、動的にHTMLレポート文字列を作成し、IronPDFのChromePdfRendererを使用してそれをPDFに変換することが可能です。 C#のforeachループの使用例はどんなものがありますか? foreachループの一般的な使用例には、コレクション内の値の合計、項目の検索、要素の変更、コレクションの各要素に対する操作があります。 C#のforループとforeachループの違いは何ですか? foreachループはその読みやすさと単純さで好まれます。forループとは異なり、コレクションのインデックスやカウントを手動で管理する必要がありません。foreachループは読み取り専用の反復処理に最適です。 foreachループでvarキーワードをどのように使いますか? foreachループでvarキーワードを使用することで、コンパイラがコレクション内の要素のデータ型を推論し、コードをより簡潔で保守しやすくします。 foreachループを使用してコレクションを変更できますか? foreachループは、実行時エラーの可能性があるため、反復中にコレクションを変更するには適していません。変更が必要な場合は、forループを使用するか、変更済みの新しいコレクションを作成することを検討してください。 C#でforeachループを使用して辞書をどのように反復処理しますか? C#では、KeyValuePair構造を使用してキーと値の両方に効率的にアクセスすることで、foreachループを使用して辞書を反復処理できます。 foreachループはどのようなタイプのコレクションを反復できますか? foreachループは、IEnumerableやIEnumerableインターフェイスを実装する任意のコレクションを反復できます。これには、C#の配列、リスト、辞書、その他のコレクションタイプが含まれます。 C#のforeachループの構文は何ですか? C#のforeachループの構文は次のとおりです:foreach (variableType variableName in collection) { // 各アイテムのために実行するコード }ここで、variableTypeはデータ型、variableNameはループ変数、collectionは反復されるコレクションです。 C#プロジェクトにPDFライブラリをインストールするにはどうすればいいですか? IronPDFは、IronPDF NuGetパッケージを追加することでC#プロジェクトにインストールできます。インストール手順はIronPDFのドキュメントに記載されています。 Curtis Chau 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 更新日 9月 4, 2025 RandomNumberGenerator C# RandomNumberGenerator C#クラスを使用すると、PDF生成および編集プロジェクトを次のレベルに引き上げることができます 詳しく読む 更新日 9月 4, 2025 C# String Equals(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む 更新日 8月 5, 2025 C# Switch Pattern Matching(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む C# String Replace (開発者向けの仕組み)C# の Try/Catch (開発者向け...
更新日 9月 4, 2025 RandomNumberGenerator C# RandomNumberGenerator C#クラスを使用すると、PDF生成および編集プロジェクトを次のレベルに引き上げることができます 詳しく読む
更新日 9月 4, 2025 C# String Equals(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む
更新日 8月 5, 2025 C# Switch Pattern Matching(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む