Oto uproszczona wersja tego, co próbuję zrobić:Jak mogę się upewnić, że FirstOrDefault <KeyValuePair> powrócił wartość
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));
Ponieważ „xyz” nie jest obecna w zmiennej KeyValuePair The Metoda FirstOrDefault nie zwróci poprawnej wartości. Chcę być w stanie sprawdzić tę sytuację, ale zdaję sobie sprawę, że nie mogę porównać wyniku z wartością "null", ponieważ KeyValuePair jest strukturą. Poniższy kod jest nieprawidłowy:
if (day == null) {
System.Diagnotics.Debug.Write("Couldn't find day of week");
}
Mamy próbie kompilacji kodu, Visual Studio generuje następujący błąd:
Operator '==' cannot be applied to operands of type 'System.Collections.Generic.KeyValuePair<int,string>' and '<null>'
Jak mogę sprawdzić, czy FirstOrDefault powrócił prawidłową wartość?
Masz problem istnieje, ale zakładam, że to copy-paste rzecz: dzień nie jest to lista, a nie możesz używać dodatku KeyValuePair. – Kobi
ooops ... masz rację, pisząc z pamięci i oczywiście popełniłem błąd. Dziękuję za wskazanie. – desautelsj
To było prawdopodobnie: var days = new Dictionary(); –