C#のforeach文のサンプルです。
目次
foreach文 | foreach文 |
配列の値を取得する | |
リストの値を取得する | |
文字列を1文字ずつ取得する | |
ディクショナリのキーと値を取得する | |
break | ループを抜ける(break) |
continue | ループの先頭に戻る(continue) |
foreach文
foreach ( データ型 変数1 in 配列やリスト等の変数2 ){ 実行される処理(変数1を使用) } |
- 配列やリストの全ての要素を順番に取り出します。
- カウントする変数は使用しません。
- 使用する変数がnullの場合System.NullReferenceExceptionの例外が発生します。
- 以下は、Microsoftのforeach文のリンクです。
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/foreach-in
配列の値を取得する
using System;
class Test1
{
static void Main()
{
var arr1 = new [] { "赤", "黄", "青" }; // 配列
foreach (var str1 in arr1)
{
Console.WriteLine(str1); //赤 黄 青
}
}
}
6行目は配列です。
8行目はforeach文で配列の値を取得しています。
リストの値を取得する
using System;
using System.Collections.Generic;
class Test1
{
static void Main()
{
var list1 = new List<string>() { "赤", "黄", "青" };
foreach (var str1 in list1)
{
Console.WriteLine(str1); //赤 黄 青
}
}
}
8行目は、リストです。
10行目は、foreach文でリストの値を取得しています。
文字列を1文字ずつ取得する
using System;
class Test1
{
static void Main()
{
var str = "ABCD";
foreach (var s1 in str)
{
Console.WriteLine(s1); // A B C Dが出力される
}
}
}
文字列をforeach文でループさせた場合、1文字ずつ取得できます。
ディクショナリのキーと値を取得する
using System;
using System.Collections.Generic;
class Test1
{
static void Main()
{
var dic1 = new Dictionary<string, string>();
dic1.Add("A", "赤");
dic1.Add("B", "黄");
dic1.Add("C", "青");
foreach (var d1 in dic1)
{
Console.WriteLine(d1.Key); // A B Cと出力される
Console.WriteLine(d1.Value); // 赤 黄 青と出力される
}
}
}
8行目は、ディクショナリです。
15行目はキーを16行目は値を取得しています。
ループを抜ける(break)
breakでループを抜けるサンプルです。
using System;
using System.Collections.Generic;
class Test1
{
static void Main()
{
var list1 = new List<string>() { "赤", "黄", "青" };
foreach (var str1 in list1)
{
if (str1 == "黄")
{
break;
}
Console.WriteLine(str1); //赤
}
}
}
14行目は、breakでforeach文のループから抜けます。
結果「赤」のみ出力されます。
ループの先頭に戻る(continue)
continueでループの先頭に戻るサンプルです。
using System;
using System.Collections.Generic;
class Test1
{
static void Main()
{
var list1 = new List<string>() { "赤", "黄", "青" };
foreach (var str1 in list1)
{
if (str1 == "黄")
{
continue;
}
Console.WriteLine(str1); //赤 青
}
}
}
14行目は、continueでforeach文の先頭(10行目)に戻ります。
結果「赤」と「青」が出力されます。
関連の記事
C# while文とdo while文のサンプル
C# for文 処理を繰り返すサンプル(break/continue)
C# 配列の仕組みと使い方のサンプル
C# Listの使い方のサンプル