「C#.NET」美しき女神が伝える「List <T> 」クラスの基本(第2回)「List<T>.ForEach」メソッド ~コレクション要素への一括処理~

2024年11月9日土曜日

コレクション 制御フロー

t f B! P L

名前空間: System.Collections.Generic

自己紹介

こんにちは、私は太陽の女神の姿を借りた「List<T>」です。2回目の登場ですね。私の役目は、あなたのプログラムに光と温かさを与えること。そして、たくさんの要素たちをまとめて管理し、簡単に操作できる力をお届けします。今日は、私が持つ特別な「ForEach」機能を紹介しますね。

基本機能

「List<T>.ForEach(Action<T>)」は、私に保存されているすべての要素を1つずつ処理するための力です。この力を使えば、ループ構文をわざわざ書かずに、簡潔にコードを記述することができます。与えられたアクション(処理)を、それぞれの要素に適用するのが私の使命です。

ForEachの役割

私のForEachは、リスト内の要素全てに同じ処理を適用するのが得意です。たとえば、すべての数字を2倍にしたり、文字列に接頭辞を追加したりする操作が簡単にできます。

ForEachを使う際の注意点

ForEachは各要素に対する処理を行いますが、リスト自体の構造を変更することはできません。例えば、要素を追加・削除する場合は、他の方法を使う必要があります。

foreachとの違い

foreachループも同じようにリストの要素を扱えますが、ForEachを使うことで、コードを短く、見やすくすることができます。また、ラムダ式を使った処理を簡単に記述できるのがForEachの特徴です。

デリゲートの活用

ForEachは「デリゲート」という仕組みを利用しています。デリゲートは、処理内容を引数として渡すためのものです。この仕組みにより、動的に処理内容を変えることができます。

サンプルコード

C#
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // 数値のリストを作成
        List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };

        // 各要素を二倍にして表示
        Console.WriteLine("リストの要素を二倍にします:");
        numbers.ForEach(num => Console.WriteLine(num * 2));

        // 文字列のリストを作成
        List<string> fruits = new List<string> { "りんご", "みかん", "ぶどう" };

        // 各要素を出力
        Console.WriteLine("フルーツのリスト:");
        fruits.ForEach(fruit => Console.WriteLine($"フルーツ名: {fruit}"));

        // foreach文を使った例
        Console.WriteLine("foreach文を使った例:");
        foreach (var fruit in fruits)
        {
            Console.WriteLine($"フルーツ名: {fruit}");
        }
    }
}

解説

このコードでは、ForEachとforeachの違いを示し、List<T>.ForEach(Action<T>)の便利さを実感していただけるようにしました。ForEachを使えば、ラムダ式を簡単に渡せるため、コードが短くなり見やすくなります。ぜひ活用してみてください!

このブログを検索

QooQ