est ici une version simplifiée de ce que je suis en train de faire:Comment puis-je faire en sorte que FirstOrDefault <KeyValuePair> a retourné une valeur
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));
Depuis « xyz » est pas présent dans la variable KeyValuePair, la La méthode FirstOrDefault ne renverra pas une valeur valide. Je veux être capable de vérifier cette situation mais je me rends compte que je ne peux pas comparer le résultat à "null" parce que KeyValuePair est une structure. Le code suivant est invalide:
if (day == null) {
System.Diagnotics.Debug.Write("Couldn't find day of week");
}
Nous vous essayez de compiler le code, Visual Studio lance l'erreur suivante:
Operator '==' cannot be applied to operands of type 'System.Collections.Generic.KeyValuePair<int,string>' and '<null>'
Comment puis-je vérifier que FirstOrDefault a retourné une valeur valide?
Vous avez un bug, mais je suppose que c'est une chose de copier-coller: jours n'est pas une liste, et vous ne pouvez pas utiliser ajouter sur KeyValuePair. – Kobi
ooops ... vous avez raison, je tapais de la mémoire et j'ai évidemment fait une erreur. Merci de l'avoir signalé. – desautelsj
C'était probablement: var days = new Dictionary(); –