Aquí hay una versión simplificada de lo que estoy tratando de hacer:¿Cómo me aseguro de que FirstOrDefault <KeyValuePair> ha devuelto un valor
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));
Desde 'xyz' no está presente en la variable KeyValuePair, la 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 es válido:
if (day == null) {
System.Diagnotics.Debug.Write("Couldn't find day of week");
}
Le intento de compilar el código, Visual Studio lanza 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?
Usted tiene un error, pero supongo que es una cosa de copiar y pegar: días no es una lista, y no puedes usar add en KeyValuePair. – Kobi
ooops ... está en lo correcto Estaba escribiendo de memoria y obviamente cometí un error. Gracias por mencionarlo. – desautelsj
Probablemente fue: var days = new Dictionary(); –