Mam obiekt typu IEnumerable<KeyValuePair<T,U>> keyValueList
, którego używam
var getResult= keyValueList.SingleOrDefault();
if(getResult==/*default */)
{
}
else
{
}
Jak mogę sprawdzić, czy getResult
jest to ustawienie domyślne, w przypadku gdy nie mogę znaleźć właściwego elementu?
Nie mogę sprawdzić, czy tak jest, null
czy nie, ponieważ KeyValuePair
jest strukturą.
Odpowiedzi:
Spróbuj tego:
albo to:
źródło
if (getResult.Equals(default))
również działadefault
równa się zero. Idefault(KeyValuePair<T,U>)
to rzeczywista KeyValuePair, która zawieranull, null
. Sam tego doświadczyłem.Możesz utworzyć ogólną (i ogólną) metodę rozszerzenia, taką jak ta:
Stosowanie:
źródło
Spróbuj tego:
źródło
źródło
Polecam więcej zrozumienia sposobu przy użyciu metody rozszerzenia:
A następnie użyj:
źródło
Z oryginalnego kodu wygląda to tak, jakbyś chciał sprawdzić, czy lista była pusta:
źródło
Aby uniknąć boksowania
KeyValuePair.Equals(object)
, możesz użyćValueTuple
.źródło