Вы всегда можете создать свой собственный метод расширения для преобразования объекта в bool или null.
Например,
public static bool? AsBoolOrDefault(this object objectToParse)
{
return objectToParse is bool ? objectToParse as bool? : null;
}
и использовать его в своем запросе, например
bool? isFruitAtPosition = fruitOrVegetable.Where(pair => pair.Key == "IsFruit")
.FirstOrDefault().Value.AsBoolOrDefault()
И вы можете использовать его везде, а не только в запросах.
Не по теме
Если использовать доступ к любому свойству или методу после использования FirstOrDefaut
и других недействительных выборокметоды, которые вы вызываете для NullReferenceException
.Я думаю, что в целом неплохо делать нулевую проверку.
В C # 6 вы можете использовать нулевой условный оператор.
bool? isFruitAtPosition = fruitOrVegetable.Where(pair => pair.Key == "IsFruit")
.FirstOrDefault()?.Value.AsBoolOrDefault()