.NETエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnet.NETナビ
  2. .NETコラム
  3. プログラミング言語
  4. C#
  5. C# でのforeach文の利用方法

C# でのforeach文の利用方法

  • C#
  • プログラミング言語
公開日時:   更新日時:
C# でのforeach文の利用方法
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    システム
    エンジニア
    C# でのforeachは、どのような利用方法があるのでしょうか?
    プロジェクト
    マネージャー
    ループ処理を途中で中断することや、処理をスキップすることができます。

    foreachとは?

    foreach文とは、配列やListに格納された要素に対して記述された処理を繰り返し実行する際に利用するループ文のことです。for文とは違い、indexに使用するint型変数を記載せずに配列の要素を先頭から順番に取得し、処理を実行することができると言った利点を持っています。また、配列の内容をすべて取得した後にはループが自動で終了するため、ループで起こしがちなIndexOutOfRangeExceptionを発生させることがありません。そのため、配列を1つしか利用しない場合や、indexを他の処理に利用しない場合などには、C# ではfor文よりforeach文を利用した方が、エラーの抑制にも繋がります。C# での基本的な構文は以下のようになっています。foreach(型名 変数名 in コレクション) { 実行する処理}in句の右辺、コレクションの部分には、配列やListといった複数の要素を保有するオブジェクトを設定します。in句の左辺にはコレクションに設定された配列やListの要素と同じ型で変数を宣言します。配列をintで作成した場合は、以下のように記載してください。int[] numbers = {1, 2, 3, 4, 5, 6};foreach (int num in numbers)このように記載することによって、配列numbers内に格納された要素がint型変数numの中に先頭から順番に格納されていくことになります。

    foreachの利用方法

    C# でforeachを利用する場合には、配列またはListのような要素を複数持ったオブジェクトが必要となります。まずは、配列を使った一番基本的な利用方法から確認していきましょう。// 配列の宣言int[] numbers = {1, 2, 3, 4, 5, 6};foreach (int num in numbers){ // 画面に出力 Console.WriteLine(“{0}”, num);}実行結果123456foreach文で配列を使った場合、配列の先頭の要素から順番に取り出し、変数numに格納していきます。foreach文の内部では変数numの内容を出力していますので、実行結果には配列の中身が順番に表示されることになります。in句の左辺には、右辺に記述した配列と同じ型の変数を宣言する必要があります。このforeach文は、Listでも同様の記載方法で利用することができます。C# では配列のほかにListも多く利用されているため、利用方法は覚えておくといいでしょう。Listを利用した場合は以下のようになります。// Listの宣言List lstNumbers = new List {1, 2, 3, 4, 5, 6};foreach (int num in lstNumbers){ // 画面に出力 Console.WriteLine(“{0}”, num);}実行結果123456これは、String型を利用しているときも同様に使用することができます。以下の例で確認しましょう。// Listの宣言List lstFruits = new List {“りんご”, “みかん”, “メロン”, “ぶどう”, “いちご”};foreach (String fruits in lstFruits){ // 画面に出力 Console.WriteLine(“{0}”, fruits);}実行結果りんごみかんメロンぶどういちご

    ループ処理を途中で中断する方法

    C# の通常のfor文では、breakを利用してループを抜けることが可能できますが、foreach文でも同様のことができます。利用方法も一緒で、breakに到達した時点でループを抜けることになります。では、以下のコードを見ながら、C# でのforeachの利用方法を確認していきましょう。// 配列の宣言int[] numbers= {1, 2, 3, 4, 5, 6};foreach (int num in numbers){ if(num == 3) { break; } // 画面に出力 Console.WriteLine(“{0}”, num);}実行結果12上記のように表記すると、変数numに3が代入された場合にbreakの処理が実行されます。breakが実行されるとその時点でforeach文の処理が中断され、その時点でループを抜けることになります。そのため、実行結果にて3以降が表示されなくなる、という結果になります。breakより上に記載された処理は実行されるため、注意が必要です。以下のように処理の順番を変えると、実行結果が変わります。// 配列の宣言int[] numbers= {1, 2, 3, 4, 5, 6};foreach (int num in numbers){ // 画面に出力 Console.WriteLine(“{0}”, num); // numが3だった場合はループを抜ける if(num == 3) { break; }}実行結果123処理を一通り実行した後にループを抜けたい場合は、breakをループの最後に表記する必要があります。

    処理をスキップする方法

    foreach文を利用している場合、特定の要素では処理をスキップしたい場合があります。C# では、そのような場合にはcontinueを利用します。以下のコードでcontinueの利用方法を確認していきましょう。// 配列の宣言int[] numbers= {1, 2, 3, 4, 5, 6};foreach (int num in numbers){ if(num == 4) { // numが4の場合は処理をスキップする continue; } // 画面に出力 Console.WriteLine(“{0}”, num);}実行結果12356continueを利用すると、その時点で次のループに処理が移ります。そのため、numには次の要素が代入されます。breakのように中断ではなくスキップであるため、4以降も実行結果には表示されます。continueより上に記載された処理は、continueを実行する前に実行されてしまうため注意が必要です。以下のように記載すると、スキップしたいはずの4も表示されてしまいます。// 配列の宣言int[] numbers= {1, 2, 3, 4, 5, 6};foreach (int num in numbers){ // 画面に出力 Console.WriteLine(“{0}”, num); if(num == 4) { // iが4の場合は処理をスキップする continue; }}実行結果123456

    システム
    エンジニア
    これならC# でのforeach文の利用方法ができそうです。
    プロジェクト
    マネージャー
    知名度が低い方法ですが、知っておくと便利なので活用してみてくださいね。

    まとめ

    for文やwhile文と比べると知名度の低いforeach文ですが、その二つとは違ってindexに当たる変数を宣言しなくても利用することができる、という利点が存在しています。配列やListを使用するときにindexを意識することなく処理を記述できる上、要素をすべて網羅したら自動で終了してくれるため、エラーが起きにくいといった利点もあります。記述方法も非常にスマートで読みやすくまとめることができます。C# のプログラミングで、ループ処理の中で配列やListを利用する場合は、ぜひforeach文を利用してみてください。

    FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    C#新着案件New Job