У меня есть объект типа IEnumerable<KeyValuePair<T,U>> keyValueList
, я использую
var getResult= keyValueList.SingleOrDefault();
if(getResult==/*default */)
{
}
else
{
}
Как я могу проверить, getResult
является ли значение по умолчанию, если я не могу найти правильный элемент?
Я не могу проверить, является ли это null
или нет, потому что KeyValuePair
это структура.
Ответы:
Попробуй это:
или это:
источник
if (getResult.Equals(default))
также работаетdefault
равно нулю. Иdefault(KeyValuePair<T,U>)
это фактическая KeyValuePair, которая содержитnull, null
. Испытал это сам.Вы можете создать общий (и универсальный) метод расширения, например, такой:
Применение:
источник
Попробуй это:
источник
источник
Я рекомендую более понятный способ, используя метод расширения:
А потом просто используйте:
источник
Исходя из вашего исходного кода, похоже, что вы хотите проверить, был ли список пуст:
источник
Чтобы избежать бокса
KeyValuePair.Equals(object)
вы можете использоватьValueTuple
.источник