using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Linq_examples { class Program { static void Main(string[] args) { var books = new BookRepository().GetBooks(); //Books with price less than 10, method 1 var cheapBooks = new List(); foreach (var book in books) { if (book.Price < 10) cheapBooks.Add(book); } foreach (var book in cheapBooks) Console.WriteLine(book.Title + " " + book.Price); //-------------------------------------------------------- //Books with price less than 10, method 2 var cheapBooks2 = books.Where(b => b.Price < 10); foreach (var book in cheapBooks2) Console.WriteLine(book.Title + " " + book.Price); var cheapBooks3 = books.Where(b => b.Price < 10).OrderBy(b => b.Title); foreach (var book in cheapBooks3) Console.WriteLine(book.Title + " " + book.Price); //LINQ Query Operators var cheaperBooks = from b in books where b.Price < 10 orderby b.Title select b.Title; foreach (var book in cheaperBooks) Console.WriteLine(book); //-------------------------------------------------------- //LINQ Extension Methods var cheapBooks4 = books .Where(b => b.Price < 10) .OrderBy(b => b .Title).Select(b => b.Title); foreach (var book in cheapBooks4) Console.WriteLine(book); //-------------------------------------------------------- var sngbook = books.Single(b => b.Title == "ASP.Net MVC"); Console.WriteLine(sngbook.Title); var sngnbook = books.SingleOrDefault(b => b.Title == "ASP.Net MVC++"); Console.WriteLine(sngnbook==null); var fbook = books.First(b => b.Title == "C# Advanced topics"); Console.WriteLine(fbook.Title+" "+fbook.Price); var fdbook = books.FirstOrDefault(b => b.Title == "C# Advanced topicsx"); Console.WriteLine(fdbook==null); var lbook = books.Last(b => b.Title == "C# Advanced topics"); Console.WriteLine(lbook.Title + " " + lbook.Price); var ldbook = books.LastOrDefault(b => b.Title == "C# Advanced topicsx"); Console.WriteLine(ldbook == null); var skiptakebooks = books.Skip(2).Take(3); foreach (var book in skiptakebooks) Console.WriteLine(book.Title + " " + book.Price); var count = books.Count(); Console.WriteLine(count); var maxPrice = books.Max(b => b.Price); Console.WriteLine(maxPrice); var minPrice = books.Min(b => b.Price); Console.WriteLine(minPrice); var priceSum = books.Sum(b => b.Price); Console.WriteLine(priceSum); } } }