Use where to filer object list : where « LINQ « C# / C Sharp






Use where to filer object list

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public class MainClass {
    public static void Main() {
        List<Product> products = GetProductList();

        var soldOutProducts =
            from p in products
            where p.UnitsInStock == 0
            select p;

        Console.WriteLine("Sold out products:");
        foreach (var product in soldOutProducts) {
            Console.WriteLine("{0} is sold out!", product.ProductName);
        }
    }

    static List<Product> GetProductList() {
        List<Product> empTree = new List<Product>();
        empTree.Add(new Product { ProductName = "A", Category = "O", UnitPrice = 12, UnitsInStock = 5, Total = 36, OrderDate = new DateTime(2005, 1, 1), Id = 1 });
        empTree.Add(new Product { ProductName = "B", Category = "O", UnitPrice = 2, UnitsInStock = 4, Total = 35, OrderDate = new DateTime(2005, 1, 1), Id = 1 });
        empTree.Add(new Product { ProductName = "C", Category = "O", UnitPrice = 112, UnitsInStock = 3, Total = 34, OrderDate = new DateTime(2005, 1, 1), Id = 1 });
        empTree.Add(new Product { ProductName = "D", Category = "O", UnitPrice = 112, UnitsInStock = 0, Total = 33, OrderDate = new DateTime(2005, 1, 1), Id = 1 });
        empTree.Add(new Product { ProductName = "E", Category = "O", UnitPrice = 1112, UnitsInStock = 2, Total = 32, OrderDate = new DateTime(2005, 1, 1), Id = 1 });
        empTree.Add(new Product { ProductName = "F", Category = "O", UnitPrice = 11112, UnitsInStock = 0, Total = 31, OrderDate = new DateTime(2005, 1, 1), Id = 1 });
        return empTree;
    }
}

class Product : IComparable<Product> {
    public string ProductName { get; set; }
    public string Category { get; set; }
    public int UnitPrice { get; set; }
    public int UnitsInStock { get; set; }
    public int Total { get; set; }
    public DateTime OrderDate { get; set; }
    public int Id { get; set; }

    public override string ToString() {
        return String.Format("Id: {0}, Name: {1} , Category: {3}", this.Id, this.ProductName, this.Category);
    }
    int IComparable<Product>.CompareTo(Product other) {
        if (other == null)
            return 1;
        if (this.Id > other.Id)
            return 1;

        if (this.Id < other.Id)
            return -1;

        return 0;
    }
}

 








Related examples in the same category

1.Where Prototype
2.To remove all vowels from a string.
3.A Query Using the Standard Dot Notation Syntax
4.Query Using the Query Expression Syntax
5.Query string value by String.StartsWith
6.Where clause with string method and return IEnumerable object
7.Query with an Exception
8.Use string method in where clause
9.where clause
10.Use && in where clause
11.Filtered: prints the name of each element of an integer array that is less than 5
12.prints strings where each element has the second letter 'i'.
13.Two where clauses
14.use where clause in a while loop
15.Assign the loop variable to another variable declared inside the statement block
16.Filter string by its length