Вы могли бы пойти с
var result = null;
foreach (element in elementList) {
if (element is whatever)
result = element;
break;
}
}
Contract.Assert(result != null, "Invalid state!");
return result;
Вносит перерыв, но при возврате выглядит чище.
Даже чище будет
return elementList.Where( e => e is whatever).First();
Редактировать как @devoured указал, что вышеперечисленное попадет во весь список
очиститель без куда
return elementList.First( e => e is whatever);
конец редактирования
Это просто взрывается, если ничего не найдено.
Но если вы действительно хотите утвердить, это может быть
var results = elementList.Where( e => e is whatever);
Contract.Assert(results.Count() == 1, "Boo");
return results.First();
но это будет повторять весь список тоже.