2016-10-25 3 views
1

У меня есть словарь пар ключ-значение. Как я могу проверить отказ where?C# словарь, где условие сбой

SomeDictionary.Where(x => x.Value && someOtherBool).First(); 

Есть ли способ, чтобы проверить, если это какой-то результат возвращается без окружающих с try-catch блока? Конечно, я могу назвать FirstOrDefault(), но я не понимаю, что мне нужно, то ...

Там должно быть действительно метод FirstOrReturn(arg) ...

+0

Мне нужен способ для обработки ситуации, когда условие «where where» терпит неудачу. Итак, если ничего не найдено, я получаю исключение. Если я использую FirstOrDefault(), я получаю 0, что не то, что я хочу – Norgul

+0

Возможно, вам не нужно '' 'Where''', но' '' Any'''? – tym32167

+1

Определите «fail», вы имеете в виду «не возвращает никаких элементов» или «выбрасывает исключение»? – Clint

ответ

7

FirstOrReturn(arg) должен быть

.Where(x => x.Value && someOtherBool).DefaultIfEmpty(arg).First(); 
+2

lol это как исправление для prod здесь: D – fubo

+0

, который быстрее выполняет эту реализацию или использует Any ? как и другой ответ – Sherlock

+0

@MidTwo Я бы сказал, что если вы используете 'Any', вы должны определить результат в другой итерации/запросе, поэтому этот должен быть быстрее – fubo

Смежные вопросы