Ich habe ein Objekt des Typs IEnumerable<KeyValuePair<T,U>> keyValueList
, den ich benutze
var getResult= keyValueList.SingleOrDefault();
if(getResult==/*default */)
{
}
else
{
}
Wie kann ich überprüfen, ob dies getResult
die Standardeinstellung ist, falls ich das richtige Element nicht finden kann?
Ich kann nicht überprüfen, ob es ist null
oder nicht, weil KeyValuePair
es eine Struktur ist.
Antworten:
Versuche dies:
oder dieses:
quelle
if (getResult.Equals(default))
auch funktioniertdefault
gleich null. Unddefault(KeyValuePair<T,U>)
ist ein aktuelles KeyValuePair, das enthältnull, null
. Ich habe das selbst erlebt.Sie können eine allgemeine (und generische) Erweiterungsmethode wie die folgende erstellen:
Verwendungszweck:
quelle
Versuche dies:
quelle
quelle
Ich empfehle, die Erweiterungsmethode besser zu verstehen:
Und dann benutze einfach:
quelle
Aus Ihrem ursprünglichen Code geht hervor, dass Sie überprüfen möchten, ob die Liste leer war:
quelle
Um das Boxen von zu vermeiden
KeyValuePair.Equals(object)
, können Sie aValueTuple
.quelle