//Create a Book
public class Book { public string Title { get; set; } public float Price { get; set; } }
//Create a repository
public class BookRepository { public IEnumerable<Book> GetBooks() { return new List<Book> { new Book(){Title="ADO.Net Step By Step", Price=5}, new Book(){Title="Asp.Net MVC", Price=9.99f}, new Book(){Title="Asp.Net WebAPI", Price=7}, new Book(){Title="C# Advance Topics", Price=12}, new Book(){Title="C# Advance Topics", Price=12} }; } }//Use this repository in program classclass Program { static void Main(string[] args) { var books = new BookRepository().GetBooks(); //LINQ Query Operstors /* var cheaperBooks = from b in books where b.Price < 10 select b; var cheaperBooks = from b in books where b.Price < 10 orderby b.Price select b; */ var cheaperBooks = from b in books where b.Price < 10 orderby b.Title select b.Title; foreach (var book in cheaperBooks) { Console.WriteLine(book); //Console.WriteLine("Books title is {0} and price is {1}", book.Title, book.Price); } //LINQ Extension methods /* var cheapBooks = books.Where(b => b.Price < 10); var cheapBooks = books.Where(b => b.Price < 10).OrderBy(b => b.Price); */ var cheapBooks = books .Where(b => b.Price < 10) .OrderBy(b => b.Price) .Select(b => b.Title); foreach (var book in cheapBooks) { Console.WriteLine(book); //Console.WriteLine("Books title is {0} and price is {1}", book.Title, book.Price); }//LINQ Extension method //In single method lamda condition should always true other wise application will crash var book = books.Single(b => b.Title == "ADO.Net Step By Step"); Console.WriteLine(book.Title); //In SingleOrDefault method lamda condition is false it will return null or default value var book = books.SingleOrDefault(b => b.Title == "ADO.Net Step By Step ++"); Console.WriteLine(book == null);var book = books.First(b => b.Title == "C# Advance Topics"); Console.WriteLine(book.Title + " " + book.Price); var book = books.FirstOrDefault(b => b.Title == "C# Advance Topics"); Console.WriteLine(book.Title + " " + book.Price); var book = books.Last(b => b.Title == "C# Advance Topics"); Console.WriteLine(book.Title + " " + book.Price); var book = books.LastOrDefault(b => b.Title == "C# Advance Topics"); Console.WriteLine(book.Title + " " + book.Price); var pageBooks = books.Skip(2).Take(3); foreach (var book in pageBooks) { Console.WriteLine(book.Title); } var count = books.Count(); Console.WriteLine(count); var max = books.Max(b => b.Price); Console.WriteLine(max); var minPrice = books.Min(b => b.Price); Console.WriteLine(minPrice); var sum = books.Sum(b => b.Price); Console.WriteLine(sum);Console.ReadKey(); } }