【C#】リストに要素が存在しない場合にデフォルト値を表示する方法
C#でプログラミングを行っていると、空のリスト(要素が1つも含まれていないリスト)から先頭の要素を取得したいケースがあります。このとき、通常のFirst()メソッドを使うと、要素が存在しないため例外(エラー)が発生してしまいます。
そこで役立つのが FirstOrDefault() メソッドです。このメソッドを使えば、リストが空の場合でもエラーを回避し、型ごとのデフォルト値(float型なら 0.0f など)を安全に取得できます。
FirstOrDefault() メソッドとは
FirstOrDefault()は、System.Linq 名前空間に含まれる拡張メソッドです。シーケンス(リストや配列など)の最初の要素を返しますが、要素が存在しない場合には例外をスローせず、その型のデフォルト値を返します。
まず、要素が1つもないリストを用意します。
List<float> val = new List<float> { };この空のリストに対して、以下のように AsQueryable().FirstOrDefault() を呼び出すことで、エラーを発生させずにデフォルト値を取得できます。
val.AsQueryable().FirstOrDefault();
また、取得したデフォルト値が特定の条件(例:0.0f)と一致した場合に、別の値へ置き換えるといった処理も簡単に実装できます。実際のコードを見てみましょう。
サンプルコード
using System;
using System.Collections.Generic;
using System.Linq;
class Demo {
static void Main() {
// 要素が空のリストを作成
List<float> val = new List<float>{ };
// FirstOrDefault() でデフォルト値を取得
float a = val.AsQueryable().FirstOrDefault();
Console.WriteLine("Default Value = "+a);
// デフォルト値が 0.0f の場合は別の値に更新
if (a == 0.0f) {
a = 0.1f;
}
Console.WriteLine("Default Float value updated = "+a);
}
}実行結果
上記のプログラムを実行すると、次のような出力が得られます。
Default Value = 0 Default Float value updated = 0.1
ポイント解説
- リストが空のため、
FirstOrDefault()は float 型のデフォルト値である 0 を返します。 - 戻り値が 0.0f だった場合に 0.1f へ更新することで、「要素が見つからなかったこと」を別の値で表現できます。
- なお、参照型(クラス型など)の場合、デフォルト値は
nullになるため、null チェックと組み合わせて使うのが一般的です。
このように FirstOrDefault() を活用すれば、空のコレクションを扱う際の例外処理をシンプルにし、安全で読みやすいコードを書くことができます。
-
プリンタードライバーがインストールされない「要素が見つかりません」エラーの対処法【Windows 11/10】
Windows 11またはWindows 10のPCユーザーなら、エラーコード0x00000c1、0x0000052e、0x0000007c、0x000006e4といったプリンター関連のエラーに遭遇したことがあるかもしれません。この記事では、システムに手動でプリンターを追加・インストールしようとした際に表示される「プリンタードライバーがインストールされていません – 要素が見つかりません(Printer driver was not installed – Element not found)」というエラーを解決する方法をご紹介します。 プリンタードライバーがインストールされない「要素が見つ
-
bcdedit実行時の「指定されたデータ要素を削除しようとしたときにエラーが発生しました。要素が見つかりません」エラーの解決方法
Windows Update の実行中に「RAMディスクデバイスを作成するのに十分なメモリがありません。エラーコード 0xc0000017」というエラーが表示されることがあります。この問題への対処としては、bcdedit /deletevalue {badmemory} badmemorylist コマンドの実行が推奨されています。多くの場合、このコマンドで問題は解決しますが、一部のユーザーからは、コマンド実行後に別のエラー——「指定されたデータ要素を削除しようとしたときにエラーが発生しました。要素が見つかりません」——が発生したという報告があります。本記事では、このエラーが起こる理由と具体的