Aquí hay una versión simplificada de lo que estoy tratando de hacer:
var days = new Dictionary<int, string>();
days.Add(1, "Monday");
days.Add(2, "Tuesday");
...
days.Add(7, "Sunday");
var sampleText = "My favorite day of the week is 'xyz'";
var day = days.FirstOrDefault(x => sampleText.Contains(x.Value));
Dado que 'xyz' no está presente en el diccionario, el método FirstOrDefault no devolverá un valor válido. Quiero poder verificar esta situación, pero me doy cuenta de que no puedo comparar el resultado con "nulo" porque KeyValuePair es una estructura. El siguiente código no es válido:
if (day == null) {
System.Diagnotics.Debug.Write("Couldn't find day of week");
}
Si intenta compilar el código, Visual Studio arroja el siguiente error:
Operator '==' cannot be applied to operands of type 'System.Collections.Generic.KeyValuePair<int,string>' and '<null>'
¿Cómo puedo comprobar que FirstOrDefault ha devuelto un valor válido?