C#

【C#】foreachのループでの豆知識

foreachで何回目のループかを判定する方法

カウンター変数を宣言してインクリメント

ぱっと思いつきそうなやり方です。

int i = 1;
var collection = Enumerable.Range(100, 10);
foreach (var item in collection)
{
    Console.WriteLine($"{i}回目のループです。");
    i++;
}
//1回目のループです。
//2回目のループです。
//3回目のループです。
//4回目のループです。
//5回目のループです。
//6回目のループです。
//7回目のループです。
//8回目のループです。
//9回目のループです。
//10回目のループです。

LinqのSelectでインデックスと値を射影

上記と結果は同じですが、ちょっとカッコイイやり方です。

var collection = Enumerable.Range(100, 10);
foreach (var item in collection.Select((x, i) => new { Index = i + 1, Value = x }))
{
    Console.WriteLine($"{item.Index}回目のループです。");
}
//1回目のループです。
//2回目のループです。
//3回目のループです。
//4回目のループです。
//5回目のループです。
//6回目のループです。
//7回目のループです。
//8回目のループです。
//9回目のループです。
//10回目のループです。

foreachでループの末尾か判定

インデックスがコレクションの要素数と等しいかで判定します。

var collection = Enumerable.Range(100, 10);
foreach (var item in collection.Select((x, i) => new { Index = i + 1, Value = x }))
{
    if (item.Index == collection.Count())
    {
        Console.WriteLine($"ループの末尾です。値:{item.Value}");
    }
    //ループの末尾です。値:109
}
エンジニアの転職ならこれ!

【第二新卒向け】マイナビジョブ20's

マイナビジョブ20'sは、20代・第二新卒・既卒向けの転職エージェントです。

▼こんな方におすすめ
・はじめて転職しようと思っている
・転職できるだけのスキルが自分にあるか不安
・手厚いサポートを受けたい

【フリーランス向け】安心保障と豊富な案件紹介 Midworks

Midworksは豊富な案件と「フリーランス」と「正社員」の良いとこ取りをした働き方を実現する手厚い保障が特徴です。

▼こんな方におすすめ
・現在正社員でフリーランスになろうか悩んでいる
・フリーランスとして働いているが、先行きが不安がある  (安定的な案件確保や保障など)
・自分の市場価値を知りたい、見合った案件で参画したい
・今後のキャリアビジョンを踏まえて案件を選びたい

【未経験向け】自宅で現役エンジニアから学べる TechAcademy

テックアカデミーは、現役エンジニアから学べるオンラインに特化したプログラミングスクールです。
講師は全員、通過率10%の選考に合格した現役エンジニア。
確かなスキルをもとに受講生をマンツーマンサポートします。


▼こんな方におすすめ
・自宅にいながらオンライン完結で勉強できる
・受講生に1人ずつ現役エンジニアのパーソナルメンターが専属でつく
・チャットで質問すればすぐに回答が返ってくる
・オリジナルサービスやオリジナルアプリなどの開発までサポート