static void Main(string[] args)
        {
            //Another example
            //Worker work = new Worker();

            #region LINQExample1
            var books = new BookRepository().GetBooks();

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

            //Use link instead of the below code

            /*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.Title)
                             .Select(b => b.Title);


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

            //will generate an error if item not found
            var book = books.Single(b => b.Title == "ASP.NET MVC");
            //Will return Null
            var bookz = books.SingleOrDefault(b => b.Title == "ASP.NET MVC");


            //Gets the first item with the indicated value
            //var bookzz = books.First(b => b.Title == "C# Advanced Topics");
            var bookzz = books.FirstOrDefault(b => b.Title == "C# Advanced Topics");

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

            Console.WriteLine(book.Title);
        }
        static void Main(string[] args)
        {
            var books      = new BookRepository().GetBooks();
            var cheapBooks = books.Where(b => b.Price < 10);

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

            // LINQ Methods can be chained
            var orderedByTitle = books
                                 .OrderBy(b => b.Title)
                                 .Select(b => b.Title);

            foreach (var b in orderedByTitle)
            {
                Console.WriteLine(b);
            }

            // Other Examples
            var result1 = books.Single(book => book.Title == "A");
            var result2 = books.SingleOrDefault(b => b.Title == "A");

            var result3 = books.FirstOrDefault(b => b.Title == "A");
            var result4 = books.LastOrDefault(b => b.Title == "A");

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

            var result6 = books.Count();
            var result7 = books.Max(b => b.Price);
            var result8 = books.Sum(b => b.Price);
            var result9 = books.Average(b => b.Price);



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

            var specificBook  = books.Single(x => x.Title == "Book1");
            var specificBook1 = books.SingleOrDefault(x => x.Title == "Book4");

            if (specificBook1 == null)
            {
                Console.WriteLine("Not Found!");
            }
            else
            {
                Console.WriteLine("Found!");
            }

            Console.WriteLine(books.First(x => x.Price < 200).Title);
            Console.WriteLine(books.FirstOrDefault(x => x.Price < 100) == null);
            Console.WriteLine();
            var filtered = books.Skip(2).Take(3);

            foreach (var item in filtered)
            {
                Console.WriteLine(item.Title);
            }

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

            Console.WriteLine(book);

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

            Console.WriteLine(sum);

            #region LINQ Exampes
            //LINQ Query
            //var cheap = from b in books
            //            where b.Price < 200
            //            orderby b.Price
            //            select b.Price;
            //Console.WriteLine();
            //foreach (var item in cheap)
            //{
            //    Console.WriteLine(item);
            //}
            //Console.WriteLine();

            //LINQ Extensions
            //var cheapBooks = books.Where(x => x.Price < 200);
            //var titles = books
            //        .Where(x => x.Price < 200)
            //        .Select(x => x.Title);
            //cheapBooks
            //    .OrderBy(x => x.Price);

            //PrintList<Book>(books);
            //PrintList<Book>(cheapBooks);
            //Console.WriteLine();
            //foreach (var item in titles)
            //{
            //    Console.WriteLine(item);
            //}
            #endregion
        }
Exemple #4
0
        static void Main(string[] args)
        {
            var books = new BookRepository().GetBooks();

            //LINQ Query Operators
            //slightly worse, keywords translate to extension methods
            //anyway, and there isnt a keyword for everything. although it is
            //friendlier and cleaner.

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

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


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

            //var bookMVC = books.LastOrDefault(b => b.Title == "C# Advanced Topics");
            //var bookMVC = books.SingleOrDefault(b => b.Title == "ASP.NET MVC+");
            if (bookMVC != null)
            {
                Console.WriteLine(bookMVC.Title + " " + bookMVC.Price);
            }

            Console.WriteLine("---------------------");
            Console.WriteLine("Now trying skip and take");
            Console.WriteLine("---------------------");

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

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


            var count = books.Count();

            Console.WriteLine("---------------------");
            Console.WriteLine(count);

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

            Console.WriteLine("---------------------");
            Console.WriteLine(max);

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

            Console.WriteLine("---------------------");
            Console.WriteLine(min);

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

            Console.WriteLine("---------------------");
            Console.WriteLine(totalCost);

            var average = books.Average(b => b.Price);

            Console.WriteLine("---------------------");
            Console.WriteLine(average);

            //Workaround, non-LINQ version
            //
            //var cheapBooks = new List<Book>();
            //foreach (var book in books)
            //{
            //    if (book.Price < 10)
            //        cheapBooks.Add(book);
            //}



            //foreach (var book in cheapBooks)
            //{
            //    Console.WriteLine("---------------------");
            //    Console.WriteLine(book.Title + " " + book.Price);
            //    Console.WriteLine(book);
        }
Exemple #5
0
        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;

            /*---the same -----*/

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

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


            /*------------------------------------------------------------------*/
            var book  = books.Single(b => b.Title == "ASP.NET MVC");            //throw an exception if nothing found
            var book2 = books.SingleOrDefault(b => b.Title == "ASP.NET MVC++"); //return null if nothing found

            Console.WriteLine(book.Title);
            Console.WriteLine(book2 == null ? "null" : book2.Title);

            /*-------------------------------------------------------------------*/

            var book3 = books.First();                                     //first element of the collection
            var book4 = books.First(b => b.Title == "C# Advanced Topics"); //first element of the collection
            var book5 = books.FirstOrDefault();                            //return null if nothing found

            Console.WriteLine(book3.Title);
            Console.WriteLine(book4.Price);
            Console.WriteLine(book5 == null ? "null" : book5.Title);

            var book6 = books.Last();                                     //first element of the collection
            var book7 = books.Last(b => b.Title == "C# Advanced Topics"); //first element of the collection
            var book8 = books.LastOrDefault();                            //return null if nothing found

            Console.WriteLine(book6.Title);
            Console.WriteLine(book7.Price);
            Console.WriteLine(book8 == null ? "null" : book8.Title);

            /*-------------------------------------------------------------------*/

            var books9 = books.Skip(2).Take(3); //used for paging data

            //skip 2 records or two objects and take 3
            foreach (var bb in books9)
            {
                Console.WriteLine(bb.Title);
            }


            /* --------------------------------------------------------------------*/

            var count = books.Count();

            Console.WriteLine(count);

            var maxPrice          = books.Max(b => b.Price);
            var minPrice          = books.Min(b => b.Price);
            var sumPriceofAllBook = books.Sum(b => b.Price);
            var average           = books.Average(b => b.Price);

            Console.WriteLine("maxPrice : {0} and min price : {1} and sum of all books : {2}, and finally average = {3}", maxPrice, minPrice, sumPriceofAllBook, average);

            Console.ReadLine();
        }
Exemple #6
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);
        }
Exemple #7
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);
             *              }
             *          }*/
        }