エンジニアの将来って?

現在7年目のCOBOL→Java→C#エンジニアが、将来への考えや勉強のアウトプット、たまに腎臓について書くブログです

【C#】【LINQ】ForEachについて解説します

こんにちは。たいら(@tairaengineer2)です。
この記事では、C#LINQForEachについて解説します。

スポンサーリンク

 

前提条件

この記事では、Visual Studio 2017 Communityを使っています。
インストールの仕方は、下の記事をご参考ください。

www.tairax.com

ForEachとは

foreachとは、配列やリストに対して、繰り返し処理ができるものです。

foreach、in (C# リファレンス)
foreach ステートメントは、System.Collections.IEnumerable または System.Collections.Generic.IEnumerable インターフェイスを実装している型のインスタンス内の要素ごとに、ステートメントまたはステートメントのブロックを実行します。
foreach ステートメントはこのような型にのみ限定されるものではありません。
次の条件を満たす任意の型のインスタンスに適用できます。

  • 戻り値の型がクラス、構造体、インターフェイス型のいずれかである、パラメーターなしのパブリック メソッド GetEnumerator を持っている。
  • GetEnumerator メソッドの戻り値の型が、パブリック プロパティ Current と、戻り値の型が Boolean であるパラメーターなしのパブリック メソッド MoveNext を持っている。

C# foreach ステートメント | Microsoft Docsから引用させて頂きました

LINQのforeachは以下のように書きます。

f:id:Tairax:20190820214217p:plain

では、実際に使って解説します。

解説で使うC#プログラムの概要

stringのListを作成します。
そのListに対して、以下の方法で要素をコンソールに表示します。

  • LINQでないforeachで出力
  • LINQのforeachで出力

コンソールプロジェクトを作成するやり方は下の記事をご参考ください。

www.tairax.com

C#サンプルコード

using System;
using System.Collections.Generic;

namespace ConsoleApp1
{
    /// <summary>
    /// LINQのforeachのサンプルプログラム
    /// </summary>
    class Program
    {
        /// <summary>
        /// メイン
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            List<string> list = new List<string>(){ "田中", "佐藤" ,"鈴木", "北村"};

            // LINQでないforeachで出力
            Console.WriteLine("LINQでないforeachで出力");
            foreach (string name in list)
            {
                Console.WriteLine("名前:" + name + "さん");
            }

            // LINQのforeachで出力
            Console.WriteLine("LINQのforeachで出力");
            list.ForEach(name => Console.WriteLine("名前: " + name + "さん"));

            Console.WriteLine("名前リストの表示が完了しました。");
        }
    }
}

実行結果

f:id:Tairax:20190820215504p:plain

LINQでないforeachで出力
名前:田中さん
名前:佐藤さん
名前:鈴木さん
名前:北村さん
LINQのforeachで出力
名前: 田中さん
名前: 佐藤さん
名前: 鈴木さん
名前: 北村さん
名前リストの表示が完了しました。
続行するには何かキーを押してください . . .
  • LINQでないforeachで出力
  • LINQのforeachで出力

どちらも同じ表示ですね!
では、解説します。

解説

LINQのforeachを中心に解説します。
foreachの中身を見てみましょう。

f:id:Tairax:20190820220842p:plain

foreachで要素に対して、Consoleで1行ずつ表示していきます。

まとめ:LINQのForEachを使ってみよう

以上がLINQのForEachの解説です。

あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ

 

ほかにもC#勉強記事を書いてます。
よければご参考ください。

【C#】【LINQ】Aggregateメソッドの使い方を解説します

【C#】【LINQ】Anyメソッドについて解説します

 

今までブログで書いたC#の解説記事のまとめは、こちらをご参考ください。

【C#】ブログで書いた文法記事のまとめ