C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のforeachループとは?基本構文とLinkedListを使った実例でわかりやすく解説

C#におけるforeachループは、System.Collections.IEnumerableまたはSystem.Collections.Generic.IEnumerable<T>インターフェースを実装している型のインスタンスに含まれる各要素に対して、指定したステートメント(文)やステートメントブロックを繰り返し実行するための制御構造です。

配列やリスト、LinkedListなどのコレクションを扱う際に、インデックスを意識せずシンプルに記述できるため、C#プログラミングにおいて非常に頻繁に使用されます。

foreachループの基本構文

foreach(要素の型 変数名 in コレクション){
    // 各要素に対して実行する処理
}

foreachループの使用例

ここでは、LinkedList<int>に格納された複数の整数値を、foreachループを使って順番に取り出して表示する例を見てみましょう。

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main(){
        LinkedList<int> linkedList = new LinkedList<int>();
        linkedList.AddLast(25);
        linkedList.AddLast(50);
        linkedList.AddLast(100);
        linkedList.AddLast(200);
        linkedList.AddLast(400);
        linkedList.AddLast(500);
        linkedList.AddLast(550);
        linkedList.AddLast(600);
        linkedList.AddLast(800);
        linkedList.AddLast(1200);

        Console.WriteLine("Count of nodes = " + linkedList.Count);

        foreach(int val in linkedList){
            Console.WriteLine(val);
        }

        Console.WriteLine("Does the LinkedList has node 800? "+linkedList.Contains(800));
    }
}

コードのポイント

  • AddLast()メソッドでLinkedListの末尾に要素を追加しています。
  • Countプロパティでノード(要素)の総数を取得できます。
  • foreachループでは、変数valに各要素が先頭から順に代入され、ブロック内の処理が繰り返し実行されます。
  • Contains()メソッドを使用すると、指定した値がコレクション内に存在するかどうかを確認できます。

実行結果

上記のコードを実行すると、以下のような出力が得られます。

Count of nodes = 10
25
50
100
200
400
500
550
600
800
1200
Does the LinkedList has node 800? True

まとめ

foreachループを使えば、コレクション内の全要素を簡潔なコードで順番に処理できます。forループのようにカウンター変数や終了条件を管理する必要がないため、コードの可読性が向上し、バグも発生しにくくなります。IEnumerable系インターフェースを実装したあらゆるコレクションで利用できるので、ぜひ活用してみてください。

  1. C#のLinkedList(連結リスト)の基本と使い方を解説

    C#のLinkedList<T>とはC#では、System.Collections.Generic名前空間に用意されているLinkedList<T>クラスを使用することで、連結リスト(リンクリスト)を簡単に扱うことができます。LinkedList<T>の最大の特徴は、リスト内への要素の挿入と削除を高速に行える点です。配列ベースのコレクションと異なり、要素の追加・削除時に他の要素を移動させる必要がないため、データの入れ替えが頻繁に発生する場面で特に有効です。LinkedList<T>の主な特徴要素の挿入・削除が高速に行える重複した要素を格納できるS

  2. C#でLinkedListを走査する方法 ― 宣言からトラバーサルまで

    C#では、System.Collections.Generic名前空間に含まれるLinkedListコレクションを使用することで、連結リストを簡単に扱うことができます。まずはLinkedListを宣言する方法から見ていきましょう。var a = new LinkedList<string>();次に、AddLastメソッドを使ってリストの末尾に要素を追加します。a.AddLast(Tim); a.AddLast(Tom);LinkedListの走査(トラバーサル)は、foreachループを使うことで非常にシンプルに実現できます。以下に完全なサンプルコードを示します。サンプルコードu