【C#入門】ElementAtOrDefaultの使い方を解説【LINQ】


C#の『ElementAtOrDefault』の使い方が分からない…教えてください!


C#を学んでいるけど…

ElementAtOrDefaultの使い方が分からない

このような疑問を持っていませんか?

この記事では、LINQのひとつである『ElementAtOrDefault』について現役エンジニアが分かりやすく解説します。

まだ、C#の開発環境構築が出来ていない方はこちらを参考にしてください。

ElementAtOrDefaultの使い方

ElementAtOrDefaultの使い方を解説する前に、ElementAtOrDefaultで何が出来るのかを把握しておきましょう。

ElementAtOrDefault = 指定したインデックス位置にある値を出力

このような考え方で問題ありません。ElementAtOrDefaultを使用すると配列などのデータのまとまりから、指定したインデックス位置にある要素を出力できます

ここまで読んでいると、「ElementAtと使い方変わらない」と思いますよね。

ElementAtについて分からない方は、以下の記事を参考にしてください。

ElementAtElementAtOrDefaultの違いは以下のようになります。

ElementAtとの違い

指定したインデックスが存在しない場合

  • ElementAt ⇒ 例外エラー発生
  • ElementAtOrDefault ⇒ 規定値(stringはnull、intは0)を返す

それでは、実際のコードを用いながらElementAtOrDefaultの使い方を解説していきます。

まずは、ElementAtOrDefaultの使い方から説明します。ElementAtOrDefaultを使って抽出するときには以下のように記述します。

配列.ElementAtOrDefault(index)

実際のコードを用いながらElementAtOrDefaultの使い方を解説していきます。

ElementAtOrDefaultを使ってシーケンスを出力するときには以下のように記述します。

using System;
using System.Collections.Generic;
using System.Linq;

namespace sample
{
    class LinqElementAtOrDefault
    {
        static public void BlogLinqElementAtOrDefault()
        {
            //値一覧を変数NumberListとして宣言・初期化
            int[] NumberList = new int[] {
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9
            };

            //NumberListの要素数回繰り返し(指定インデックスに要素あり)
            for (int Index = 0; Index < NumberList.Length; Index++)
            {
                //NumberListのIndex番目の要素を出力
                Console.WriteLine($"{Index}番目の要素:{NumberList.ElementAtOrDefault(Index)}");
            }

            //100番目の要素を出力(指定インデックスに要素なし)
            Console.WriteLine($"100番目の要素:{NumberList.ElementAtOrDefault(100)}");

        }
    }
}

サンプルコードを実行した際の出力結果は、以下のようになります。

0番目の要素:0
1番目の要素:1
2番目の要素:2
3番目の要素:3
4番目の要素:4
5番目の要素:5
6番目の要素:6
7番目の要素:7
8番目の要素:8
9番目の要素:9
100番目の要素:0

注目していただきたいのは、ElementAtOrDefaultを使っている29行目、33行目です。

配列.ElementAtOrDefault(index)

これを基にサンプルコードを解説すると、「配列 = NumberList」、「index = Index」となります。

つまり、配列(NumberList)要素番号(Index)を出力(Console.WriteLine)するということです。

特に注目して欲しいのは、100番目の要素が0と出力されていることです。

ElementAtOrDefaultでは、存在しないインデックスを指定すると「0」を返すことです。(int型の場合)

このようにして、C#ではElementAtOrDefaultを使用することで、コードを簡潔に書くことが出来ます。

【まとめ】ElementAtOrDefaultは指定したインデックス位置にある値を出力できる

ElementAtOrDefaultの使い方は理解できましたか?

まとめ

  • ElementAtOrDefault = 指定したインデックス位置にある値を出力
  • 配列.ElementAt(Index);
  • 指定したインデックスが存在しない場合は規定値(stringはnull、intは0)を返す

この記事では、C#のElementAtOrDefaultの使い方について紹介しました。

最後になりますが、ここに関してもっと詳しく教えて欲しいときなどは、遠慮なく、お問い合わせ、コメント、Twitterにてご連絡ください。

最後までお読みいただきありがとうございました。

Tech Academy

  • 受講者数No.1のプログラミングスクール
  • 通過率10%の選考に合格した優秀な講師
  • カリキュラムを閲覧制限なし
  • コースの種類が豊富
  • オンラインで完結
  • 無料体験あり
  • 無料カウンセリングあり
  • 学割あり

\ 公式サイトはこちら /

Tech Academy 公式サイト