Ecco una versione semplificata di quello che sto cercando di fare:
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));
Poiché "xyz" non è presente nel dizionario, il metodo FirstOrDefault non restituirà un valore valido. Voglio essere in grado di verificare questa situazione, ma mi rendo conto che non posso confrontare il risultato con "null" perché KeyValuePair è una struttura. Il codice seguente non è valido:
if (day == null) {
System.Diagnotics.Debug.Write("Couldn't find day of week");
}
Quando si tenta di compilare il codice, Visual Studio genera il seguente errore:
Operator '==' cannot be applied to operands of type 'System.Collections.Generic.KeyValuePair<int,string>' and '<null>'
Come posso verificare che FirstOrDefault abbia restituito un valore valido?