Hier ist eine vereinfachte Version von dem, was ich versuche zu tun:
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));
Da 'xyz' im Wörterbuch nicht vorhanden ist, gibt die FirstOrDefault-Methode keinen gültigen Wert zurück. Ich möchte in der Lage sein, nach dieser Situation zu suchen, aber mir ist klar, dass ich das Ergebnis nicht mit "null" vergleichen kann, da KeyValuePair eine Struktur ist. Der folgende Code ist ungültig:
if (day == null) {
System.Diagnotics.Debug.Write("Couldn't find day of week");
}
Wenn Sie versuchen, den Code zu kompilieren, gibt Visual Studio den folgenden Fehler aus:
Operator '==' cannot be applied to operands of type 'System.Collections.Generic.KeyValuePair<int,string>' and '<null>'
Wie kann ich überprüfen, ob FirstOrDefault einen gültigen Wert zurückgegeben hat?