Monday, July 30, 2018

Basics of LINQ

//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 class
class 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();
    }
}

No comments:

Post a Comment

Find the value from array when age is more than 30

 const data = [   { id: 1, name: 'Alice', age: 25 },   { id: 2, name: 'Bob', age: 30 },   { id: 3, name: 'Charlie', ...