Как то сложно все у вас выходит.
Если хотите сделать некую модель библиотеки над книгами то как вариант, тут не конечное решение вашей проблемы, но может натолкнет вас.
Есть модель книги
public class Book
{
public string Name { get; set; }
public string Author { get; set; }
}
Есть класс обертка над списком(Библиотекой). Тут вы можете реализовать любые методы для фильтрации и вывода нужной вам информации. Как пример я описал метод добавления книги.
public class Library
{
private List<Book> books;
public Library()
{
books = new List<Book>();
}
public IEnumerable<Book> GetAllBooks {
get
{
return books;
}
}
public void AddBook(Book b)
{
books.Add(b);
}
}
Ну и место где все это связывается и выводится
class Program
{
static void Main(string[] args)
{
var library = new Library();
library.AddBook(new Book { Author = "Пушкин", Name = "Руслан и Людмила" });
library.AddBook(new Book { Author = "Булгаков", Name = "Мастер и Маргарита" });
foreach(var book in library.GetAllBooks)
{
Console.WriteLine($"{book.Author} {book.Name}");
}
Console.ReadLine();
}
}