J'ai un objet du type IEnumerable<KeyValuePair<T,U>> keyValueList
, j'utilise
var getResult= keyValueList.SingleOrDefault();
if(getResult==/*default */)
{
}
else
{
}
Comment puis-je vérifier si getResult
c'est la valeur par défaut, au cas où je ne trouverais pas l'élément correct?
Je ne peux pas vérifier si c'est le cas null
, car KeyValuePair
c'est une structure.
Réponses:
Essaye ça:
ou ca:
la source
if (getResult.Equals(default))
ça marche aussidefault
est égal à null. Etdefault(KeyValuePair<T,U>)
est un KeyValuePair réel qui contientnull, null
. J'ai vécu cela moi-même.Vous pouvez créer une méthode d'extension générale (et générique), comme celle-ci:
Usage:
la source
Essaye ça:
la source
la source
Je recommande une manière plus compréhensive d'utiliser la méthode d'extension:
Et puis utilisez simplement:
la source
À partir de votre code d'origine, il semble que vous souhaitiez vérifier si la liste était vide:
la source
Pour éviter la boxe de
KeyValuePair.Equals(object)
vous pouvez utiliser unValueTuple
.la source