How can I make sure that FirstOrDefault has returned a value

FirstOrDefault doesn’t return null, it returns default(T).
You should check for:

var defaultDay = default(KeyValuePair<int, string>);
bool b = day.Equals(defaultDay);

From MSDN – Enumerable.FirstOrDefault<TSource>:

default(TSource) if source is empty; otherwise, the first element in source.

Notes:

  • If your code is generic it is better to use EqualityComparer<T>.Default.Equals(day, defaultDay), becuase .Equals may be overridden or day could be a null.
  • In C# 7.1 you will be able to use KeyValuePair<int, string> defaultDay = default;, see Target-typed “default” literal.
  • See also: Reference Source – FirstOrDefault

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)