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

C#でListの各要素に指定したアクションを実行する方法

C#でリスト(List<T>)の各要素に対して指定されたアクションを実行したい場合は、ForEachメソッドを使用します。ForEachメソッドは、Action<T>デリゲートを引数として受け取り、リスト内のすべての要素に対して順番にその処理を適用します。

ForEachメソッドの基本構文

list.ForEach(アクション);

引数には、既存のメソッド名を直接指定することもできますし、ラムダ式を渡すことも可能です。

例1:各要素を10倍して表示する

以下は、リスト内の各整数を10倍にしてコンソールに出力するサンプルコードです。

using System;
using System.Collections.Generic;

public class Demo {
    public static void demo(int s) {
        s = s * 10;
        Console.WriteLine(s);
    }

    public static void Main(String[] args) {
        List<int> list = new List<int>();
        list.Add(25);
        list.Add(50);
        list.Add(75);
        list.Add(100);
        list.Add(200);
        list.Add(250);
        list.Add(275);
        list.Add(300);

        Console.WriteLine("List...");
        foreach (int i in list) {
            Console.WriteLine(i);
        }

        Console.WriteLine("\nUpdated List...");
        list.ForEach(demo);
    }
}

実行結果

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

List...
25
50
75
100
200
250
275
300

Updated List...
250
500
750
1000
2000
2500
2750
3000

ご覧のとおり、ForEachメソッドによってdemoメソッドが各要素に適用され、元の値がすべて10倍されて表示されています。

例2:各要素から50を引いて表示する

続いて、別の例を見てみましょう。今度は各要素から50を減算して出力します。

using System;
using System.Collections.Generic;

public class Demo {
    public static void demo(int s) {
        s = s - 50;
        Console.WriteLine(s);
    }

    public static void Main(String[] args) {
        List<int> list = new List<int>();
        list.Add(25);
        list.Add(50);
        list.Add(75);
        list.Add(100);
        list.Add(200);
        list.Add(250);
        list.Add(275);
        list.Add(300);

        Console.WriteLine("List...");
        foreach (int i in list) {
            Console.WriteLine(i);
        }

        Console.WriteLine("\nUpdated List...");
        list.ForEach(demo);
    }
}

実行結果

このコードを実行すると、以下の出力が得られます。

List...
25
50
75
100
200
250
275
300

Updated List...
-25
0
25
50
150
200
225
250

補足:ラムダ式を使った書き方

専用のメソッドを定義しなくても、ラムダ式を直接渡すことでより簡潔に記述できます。

list.ForEach(s => Console.WriteLine(s * 10));

このように、C#のForEachメソッドを使えば、foreachループを明示的に書かなくても、リストの全要素に対して同じ処理を簡潔に適用することができます。

  1. 【JavaScript入門】addEventListener()で要素にイベントハンドラを追加する方法

    addEventListener()メソッドとはJavaScriptでは、addEventListener()メソッドを使うことで、指定した要素にイベントハンドラ(イベントリスナー)を登録できます。このメソッドの最大の特徴は、すでに設定されているイベントハンドラを上書きせずに新しいハンドラを追加できる点です。そのため、1つの要素に対して複数のイベントハンドラを同時に登録することも可能です。さらに、addEventListener()を利用すると、バブリング(イベントの伝播)への反応の仕方を柔軟に制御できます。mouseoverやclickをはじめ、さまざまな種類のイベントを扱えるのも魅力です。

  2. HTMLで要素に値を追加するには?value属性の使い方を解説

    HTMLで要素に値を設定するには、value属性を使用します。value属性は、フォーム送信時にサーバーへ送られる初期値や、要素が持つ現在の値を指定するために使われます。 value属性が使用できる要素 value属性は、以下のHTML要素で利用できます。 <button> … ボタンのラベルとして送信される値 <input> … 入力フィールドの初期値 <li> … 順序付きリスト(<ol>)内での項目の開始番号 <option> … 選択肢としてサーバーへ送信される値 <meter> … 計測範囲内における現在の値