web-dev-qa-db-ja.com

空のIEnumerable <int>のFirstOrDefault()に対してnullを返しますか?

次のスニペットがあるとします。

_int? nullableId = GetNonNullableInts().FirstOrDefault();
_

GetNonNullableInts()は整数を返すため、FirstOrDefaultはデフォルトで_0_になります。
整数のリストのFirstOrDefaultがリストが空のときにnull値を返すようにする方法はありますか?

25
Boris Callens
int? nullableId = GetNonNullableInts().Cast<int?>().FirstOrDefault();
45
Matt Howells

FirstOrDefaultIEnumerable<T>Tに依存して、返されるタイプを認識します。そのため、int?の代わりにintを受け取ります。

したがって、 マットによると のように、値を返す前にアイテムをint?にキャストする必要があります

1
Rubens Farias