パハットノート

※当サイトではGoogleアドセンス広告を利用しています

C# foreachの使い方



概要

  • foreachにより、配列やリストに対する繰り返し処理を、for文よりも効率的に記述することができます。
  • ソートなどループ回数の記録が必要であったり、中身を書き換えたりするときはfor文、中身の表示を行うなど元の配列やリストを変更しないときはforeach文を使用といった感じな使い分けがオススメ。
  • ↓↓記述方法
foreach(データ型 変数 in 配列やリストなど)
{
}



例1 int型配列の中身を表示

ソースコード

using System;
public class Sample1
{
    public static void Main()
    {
        int[] a = new int[] { 3, 4, 1, 2 };

        foreach (int i in a)
        {
            Console.WriteLine(i);
        }
    }
}

実行結果

3
4
1
2




例2 Action型Listの実行

ソースコード

using System;
using System.Collections.Generic;

public class Sample2
{
    public static void Main()
    {
        List<Action> actionList = new List<Action>
        {
            Action0,
            Action1,
            Action2
        };

        foreach (Action act in actionList)
        {
            act();
        }
    }

    public static void Action0()
    {
        Console.WriteLine("Action0");
    }

    public static void Action1()
    {
        Console.WriteLine("Action1");
    }

    public static void Action2()
    {
        Console.WriteLine("Action2");
    }
}

実行結果

Action0
Action1
Action2





例3 String型スタックの表示

  • foreachで中身の表示を行っても、元のスタックの中身からpopされることはなかった。

ソースコード

using System;
using System.Collections.Generic;

public class Sample3
{
    public static void Main()
    {
        Stack<string> strStack = new Stack<string>();
        strStack.Push("赤");
        strStack.Push("青");
        strStack.Push("黄色");

        foreach (string s in strStack)
        {
            Console.WriteLine(s);
        }

        Console.WriteLine(strStack.Count);
    }
}

実行結果

黄色
青
赤
3





List.forEachについて

  • Listに関するforEachは以下のような記述でも可能である(参考↓)

learn.microsoft.com

ソースコード

using System;
using System.Collections.Generic;

public class Sample4
{
    public static void Main()
    {
        List<string> myList = new List<string>()
        {
            "馬",
            "鳥",
            "虎",
        };

        myList.ForEach(s => Console.WriteLine(s));
    }
}

実行結果

馬
鳥
虎