//Definition of LINQ
        //Stands for Language Integrated Query
        //Capability to query objects

        //Usage
        //You can query objects in memory (LINQ to objects), Databases (LINQ to Entities), XML (LINQ to XML), ADO.NET Data Sets (LINQ to Data Sets)
        static void Main(string[] args)
        {
            var books = new BookRepository().GetBooks();

            //LINQ Query Operators
            var cheaperBooks = from b in books
                               where b.Price < 10
                               orderby b.Title
                               select b.Title;

            //LINQ Extension Methods
            books.Where(x => x.Price < 10).ToList().ForEach(y => Console.WriteLine(y.Title));
        }
Example #2
0
        static void Main(string[] args)
        {
            var books = new BookRepository().GetBooks();

            /*
             * This can be done in one line using LINQ:
             * var cheapBooks = new List<Book>();
             *
             * foreach(var book in books)
             * {
             *  if(book.Price < 10)
             *  {
             *      cheapBooks.Add(book);
             *  }
             * }
             */

            // LINQ Extension methods
            var cheapBooks = books
                             .Where(b => b.Price < 10)
                             .OrderBy(b => b.Price)
                             .Select(b => b.Title);

            // LINQ Query operators
            var cheaperBooks = from b in books
                               where b.Price < 10
                               orderby b.Title
                               select b.Title;

            foreach (var book in cheapBooks)
            {
                //Console.WriteLine(book.Title + " " + book.Price);
                Console.WriteLine(book);
            }

            Console.WriteLine();

            foreach (var book in cheaperBooks)
            {
                //Console.WriteLine(book.Title + " " + book.Price);
                Console.WriteLine(book);
            }

            Console.WriteLine();

            var book1 = books.SingleOrDefault(b => b.Title == "ASP.NET MVC+");

            Console.WriteLine(book1);

            var book2 = books.FirstOrDefault(b => b.Title == "C# Advanced Topics");

            Console.WriteLine(book2.Title + " " + book2.Price);

            var book3 = books.LastOrDefault(b => b.Title == "C# Advanced Topics");

            Console.WriteLine(book3.Title + " " + book3.Price);

            Console.WriteLine();

            var books4 = books.Skip(2).Take(3);

            foreach (var book in books4)
            {
                Console.WriteLine(book.Title);
            }

            Console.WriteLine();

            var count = books.Count();

            Console.WriteLine(count);

            Console.WriteLine();

            var maxPrice = books.Max(b => b.Price);

            Console.WriteLine(maxPrice);

            Console.WriteLine();

            var minPrice = books.Min(b => b.Price);

            Console.WriteLine(minPrice);

            Console.WriteLine();

            var totalPrice = books.Sum(b => b.Price);

            Console.WriteLine(totalPrice);
        }
Example #3
0
        static void Main(string[] args)
        {
            var books = new BookRepository().GetBooks();

            // LINQ query operators
            // always start with from and end with select
            var cheapBooks =
                from b in books
                where b.Price < 10
                orderby b.Title
                select b.Title;

            foreach (var book in cheapBooks)
            {
                Console.WriteLine(book);
            }

            var singleBook = books.SingleOrDefault(b => b.Title == "Book 2"); // if there is no book2 it will return the default which is null

            Console.WriteLine("Single book: " + singleBook.Title);

            var firstBook = books.FirstOrDefault(b => b.Title == "Book 3");

            Console.WriteLine("First book that has title Book 3: " + firstBook.Price); // default is null

            var lastBook = books.LastOrDefault(b => b.Title == "Book 3");

            Console.WriteLine("Last book that has title Book 3: " + lastBook.Price);

            var pages = books.Skip(2).Take(3); // skips the first 2 books and takes the next 3

            foreach (var pagedBook in pages)
            {
                Console.WriteLine(pagedBook.Title);
            }

            var count = books.Count();

            Console.WriteLine("Count: " + count);

            var maxPrice = books.Max(b => b.Price); // returns the book with the max price

            Console.WriteLine("Max: " + maxPrice);

            var sumPrice = books.Sum(b => b.Price);

            Console.WriteLine("Total: " + sumPrice);


            // LINQ Extension methods

            /*            var cheapBooks = books.Where(b => b.Price < 10).OrderBy(b => b.Title).Select(b => b.Title);
             *
             *          foreach(var book in cheapBooks)
             *              Console.WriteLine(book);*/

            // after using select for the title, book is now a string because it returns an
            // IEnumerable of just the title of the books. This can no longer be used

            /*            foreach(var book in cheapBooks)
             *              Console.WriteLine(book.Title + " " + book.Price);*/

            // without LINQ

            /*            var cheapBooks = new List<Book>();
             *          foreach(var book in books)
             *          {
             *              if (book.Price < 10)
             *              {
             *                  cheapBooks.Add(book);
             *                  Console.WriteLine(book.Title + " " + book.Price);
             *              }
             *          }*/
        }