Вывод записей из списка. Ошибка - C#
Формулировка задачи:
Подскажите пожалуйста, проблема с выводом, прошу помощи.)
Заранее спасибо..
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace lab_16___2
{
class Books
{
public string Name { get; set; }
public string Publisher { get; set; }
public string YearPublisher { get; set; }
}
class Program
{
public static string Menu(string selection)
{
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("Меню:\n1.Ввода записей в список.\n2.Вывод записей из списка.\n3.Добавление записи в список.\n4.Очистка.\n5.Выход.");
Console.ForegroundColor = ConsoleColor.White;
selection = Console.ReadLine();
while (selection != "1" && selection != "2" && selection != "3" && selection != "4" && selection != "5")
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Некорректный ввод.");
Console.ForegroundColor = ConsoleColor.White;
selection = Console.ReadLine();
}
return selection;
}
static void Main(string[] args)
{
List<Books> bibl = new List<Books>();
string selection = string.Empty;
int count = 1, counter = 1, counter2 = 0;
ConsoleKeyInfo x;
Console.ForegroundColor = ConsoleColor.White;
while (selection != "5")
{
selection = Menu(selection);
switch (selection)
{
case "1":
do
{
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("\nВведите {0}-ю запись", count);
Console.WriteLine("Введите имя издателя: ");
bibl.Add(new Books() { Name = Console.ReadLine() });
Console.WriteLine("Введите автор книги:");
bibl.Add(new Books() { Publisher = Console.ReadLine() });
Console.WriteLine("Введите год издания: ");
bibl.Add(new Books() { YearPublisher = Console.ReadLine() });
++count;
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("ESC - для прекращения ввода; ENTER - продолжить;");
x = Console.ReadKey(true);
if (x.Key == ConsoleKey.Escape && count <= 1)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("(ENTER) Введено меньше 5-ти значений. Повторите ввод, пока кол-во значений не будет равно 5.");
x = Console.ReadKey(false);
Console.ForegroundColor = ConsoleColor.White;
}
}
while (x.Key != ConsoleKey.Escape);
break;
case "2":
Console.WriteLine("Вывод записей:");
foreach(Books b in bibl)
{
counter2++;
Console.WriteLine("\nИздатель[{0}] = {1} \nАвтор[{0}] = {2} \nГод[{0}] = {3}",counter,b.Name,b.Publisher,b.YearPublisher);
if (counter2 % 3 == 0)
{
counter++;
}
}
break;
case "3":
do
{
Console.WriteLine("\nВведите {0}-ю запись", count);
Console.WriteLine("Введите имя издателя: ");
bibl.Add(new Books() { Name = Console.ReadLine() });
Console.WriteLine("Введите автор книги:");
bibl.Add(new Books() { Publisher = Console.ReadLine() });
Console.WriteLine("Введите год издания: ");
bibl.Add(new Books() { YearPublisher = Console.ReadLine() });
++count;
Console.WriteLine("ESC - для прекращения ввода; ENTER - продолжить;");
x = Console.ReadKey(true);
if (x.Key == ConsoleKey.Escape && bibl.Count() < 5)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("(ENTER) Введено меньше 5-ти значений. Повторите ввод, пока кол-во значений не будет равно 5.");
x = Console.ReadKey(false);
Console.ForegroundColor = ConsoleColor.White;
}
}
while (x.Key != ConsoleKey.Escape);
break;
case "4":
Console.Clear();
break;
case "5":
Environment.Exit(0);
break;
}
}
Console.ReadKey();
}
}
}
80 строка, чет я запутался
Решение задачи: «Вывод записей из списка. Ошибка»
textual
Листинг программы
Console.WriteLine("Вывод записей:");
foreach (Books b in bibl)
{
Console.WriteLine("\nКнига № {0}", ++counter2);
Console.WriteLine(b);
}