diff --git a/Books.ConsoleApp/Program.cs b/Books.ConsoleApp/Program.cs index c0051a3..b0b648b 100644 --- a/Books.ConsoleApp/Program.cs +++ b/Books.ConsoleApp/Program.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Diagnostics.Contracts; using System.Globalization; namespace Books.ConsoleApp @@ -9,12 +10,11 @@ namespace Books.ConsoleApp List BooksByAuthorCatalogue = null; static void Main(string[] args) { - Book[] books = BookSource.Read(); + IEnumerable books = BookSource.Read(); BooksByAuthorCatalogue = new List(); - for (int i = 0; i < books.Length; i++) + foreach (var book in books) { - var book = books[i]; if (AuthorIsAlreadyCataloged(book.author)) { // there are some(1 or more) books by this author already found and catalogued @@ -37,9 +37,9 @@ namespace Books.ConsoleApp var authorAlreadyCatalogued = false; // we'll iterate over the catalogue to find the author - if athors's already been cataloged - for (int j = 0; j < BooksByAuthorCatalogue.Count; j++) + + foreach (var entry in BooksByAuthorCatalogue) { - var entry = BooksByAuthorCatalogue[j]; if (entry.author == author) { authorAlreadyCatalogued = true; @@ -54,7 +54,7 @@ namespace Books.ConsoleApp private static int LocateAuthorAlreadyCataloged(string author) { var authorCatalogIndex = 0; - + // We'll iterate over the cataloge to find the author's index for (int j = 0; j < BooksByAuthorCatalogue.Count; j++) { @@ -72,7 +72,7 @@ namespace Books.ConsoleApp { // there are NONE books by this author already found and cataloged - var newBookList = new List {b}; + var newBookList = new List { b }; var authorAndBooks = new BooksByAuthor(b.Author, newBookList); BooksByAuthorCatalogue.Add(authorAndBooks); @@ -80,13 +80,12 @@ namespace Books.ConsoleApp private static void OutputBooksByAuthor() { - for (int i = 0; i < BooksByAuthorCatalogue.Count; i++) + foreach (var ba in BooksByAuthorCatalogue) { - BooksByAuthor ba = BooksByAuthorCatalogue[i]; Console.Write("Author: {0, -28} Books: ", ba.Author); - for (int j = 0; j < ba.Books.Count; j++) + foreach (var book in ba.Books) { - Console.Write(ba.Books[j].title + ", "); + Console.Write(book.title + ", "); } Console.Write(Environment.NewLine); }