Как сделать так чтобы yield return возвращал "Да", если b равно true, "Нет" если b равен false, и прекращал отдавать элементы, если b равен null
Дан следующий код:
class Program
{
static bool? b = true;
static void Main()
{
//Проверочный код
}
static IEnumerable<string> IsTrue()
{
}
}
Как сделать так чтобы возвращал "Да", если b равен true, "Нет" если b равен false, и прекращал отдавать элементы, если b равен null. Пробовал реализовать таким способом:
static IEnumerable<string> IsTrue()
{
if(b == true) { yield return "Да"; }
if (b == false) { yield return "Нет"; }
yield break;
}
Но я так понимаю таким образом не будет возвращаться да или нет в зависимости от булевого значения, так как итератор будет вначале возвращать "Да" как реализовать метод так, чтобы он возвращал мне значение в соответствии с задачей.
Ответы (1 шт):
Автор решения: Дима Рейхц
→ Ссылка
static IEnumerable<string> IsTrue()
{
while (true)
{
if(b == true)
{
yield return "Да";
}
else if (b == false)
{
yield return "Нет";
}
else if(b == null)
{
yield break;
}
}
}
Надо было сделать yield return с циклом while и тогда это считалось правильным ответом