C# LinqのSingle実行時に値がない場合にデフォルト値を返す
C#で、LinqのSingle実行時に値がない場合にデフォルト値を返すサンプルコードを記述してます。
環境
- OS windows10 pro 64bit
- Microsoft Visual Studio Community 2019 Version 16.7.1
LinqのSingle実行時に値がない場合にデフォルト値を返す
エラーを出さずにデフォルト値を返すには、Linqの「SingleOrDefault」を使用することで可能です。
// 配列を用意
int[] num = new int[] { 1, 3, 5 };
// 値を取得
num.SingleOrDefault(v => v < 0); // 存在しないので「0」が返る
以下は、リスト内にある値に存在しない条件を指定して、結果を表示するだけのコードとなります。
using System;
using System.Collections.Generic;
using System.Linq;
namespace testapp
{
class Program
{
static void Main(string[] args)
{
// Listを用意
var list = new List<int> { 1, 2, 3, 4, 5 };
try
{
Console.WriteLine(list.SingleOrDefault(v => v > 6));
}
catch (InvalidOperationException e)
{
System.Console.WriteLine(e.ToString());
}
catch (Exception e)
{
System.Console.WriteLine(e.ToString());
}
}
}
}
実行結果
ただし、結果が複数ある場合は「InvalidOperationException」が返ります。
using System;
using System.Collections.Generic;
using System.Linq;
namespace testapp
{
class Program
{
static void Main(string[] args)
{
// Listを用意
var list = new List<int> { 1, 2, 3, 4, 5 };
try
{
Console.WriteLine(list.SingleOrDefault(v => v > 3));
}
catch (InvalidOperationException e)
{
System.Console.WriteLine(e.ToString());
}
catch (Exception e)
{
System.Console.WriteLine(e.ToString());
}
}
}
}
実行結果
-
前の記事
GitHub Desktop タグをつける 2021.11.20
-
次の記事
python PySimpleGUIで複数行テキスト編集エリアMultilineの幅と高さを設定する 2021.11.20
コメントを書く