この記事の内容
List<T> の Find() や FirstOrDefault() で要素が見つからない場合に、どのような値が返ってくるかを書いています。
数値のリスト
数値のリストの検索において、一致する内容が見つからない場合、Find() や FirstOrDefault() はゼロを返します。
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// Findメソッドの例
int foundNumber = numbers.Find(x => x == 6);
Console.WriteLine("result: " + foundNumber);
}
}
実行結果
result: 0
文字列のリスト
文字列のリストの検索において、一致する内容が見つからない場合、Find() や FirstOrDefault() は null を返します。
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<string> stringList = new List<string>
{
"Apple",
"Banana",
"Cherry",
"Date"
};
// Findメソッドの例
string result = stringList.Find(s => s == "Orange");
// 結果の出力
if (result != null)
{
Console.WriteLine($"result: {result}");
}
else
{
Console.WriteLine("No matching element found.");
}
}
}
実行結果
No matching element found.
構造体の場合
構造体のリストの検索において、一致する内容が見つからない場合、Find() や FirstOrDefault() はメンバをゼロ初期化した構造体を返します。
using System;
using System.Collections.Generic;
struct Point
{
public int X { get; set; }
public int Y { get; set; }
}
class Program
{
static void Main()
{
List<Point> points = new List<Point>
{
new Point { X = 1, Y = 2 },
new Point { X = 3, Y = 4 },
new Point { X = 5, Y = 6 }
};
// Findメソッドの例
Point foundPoint = points.Find(p => p.X == 7);
Console.WriteLine($"result: X={foundPoint.X}, Y={foundPoint.Y}");
}
}
実行結果
result: X=0, Y=0
クラスの場合
クラスのリストの検索において、一致する内容が見つからない場合、Find() や FirstOrDefault() は null を返します。
using System;
using System.Collections.Generic;
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main()
{
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 25 },
new Person { Name = "Bob", Age = 30 },
new Person { Name = "Charlie", Age = 22 }
};
// Findメソッドの例
Person foundPerson = people.Find(p => p.Name == "David");
Console.WriteLine("result: " + (foundPerson == null ? "null" : foundPerson.Name));
}
}
実行結果
result: null
まとめ
本記事では、List<T> の Find() や FirstOrDefault() で要素が見つからない場合に、どのような値が返ってくるか、について紹介しました。