Возможно ли иметь Func как условие while

Добрый вечер,

Мне было интересно, могу ли я сделать что-то вроде:

while(true)
{
   MyEnum currentValue = GetMyEnumValueFromDB();
   if(currentValue == MyEnum.BreakIfYouGetThis)
      break;
   else if(currentValue == MyEnum.AlsoBreakIfYouGetThis)
      break;
   else
      //Do some computing
}

Но вместо цикла while (true) я бы хотел инкапсулировать условную логику в Func и выполните его так:

while(new Func<bool>(/* what goes here? */))
{
   //Do some computing
}

По крайней мере, в моем случае это выглядело бы намного чище, но я не уверен, как это сделать (вроде новинка в Func / Action ..).

РЕДАКТИРОВАТЬ надеюсь, это проясняет:
Это также можно сделать так:

while(GetMyEnumValueFromDB() != MyEnum.BreakIfYouGetThis && 
      GetMyEnumValueFromDB() != MyEnum.AlsoBreakIfYouGetThis)
{
   //Do some computing
}

Но это 2 обращения к базе данных ...

Спасибо =)

0
задан Louis Kottmann 16 December 2011 в 16:59
поделиться