using System.Collections.Generic;
public static void Main()
int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 };
foreach (int num in numQuery)
Console.Write("{0,1} ", num);
Console.WriteLine(numQuery.GetType());
Console.WriteLine(numQuery3.GetType());
Customer cust1 = new Customer("London","Jack","Wong");
Customer cust2 = new Customer("London","Jack","Zhong");
Customer cust3 = new Customer("London","Jack","Long");
Customer cust4 = new Customer("New York","Jack","Chong");
Customer cust5 = new Customer("New York","Jack","Li");
Database db = new Database();
db.Add(cust1,cust2,cust3,cust4,cust5);
Console.WriteLine("Using delegate...");
foreach (Customer result in db.FindAll(x => x.City == "New York"))
Console.WriteLine(result);
from cust in db.customers
where cust.City == "London"
Console.WriteLine("Using Linq Query");
foreach (Customer customer in customerQuery)
Console.WriteLine(customer);
public Customer(string c, string fn, string ln)
public override string ToString(){
return String.Format("{0} {1} from {2}",this.FirstName,this.LastName,this.City);
public List<Customer> customers;
private List<Customer> custList = new List<Customer>();
get{ return custList.Count();}
public void Add(params Customer[] custL)
foreach (Customer cust in custL)
public void Remove(params Customer[] custL)
foreach (Customer cust in custL)
if (custList.Contains(cust))
Console.WriteLine("Customer not found");
public List<Customer> FindAll(Predicate<Customer> p)
return custList.FindAll(p);
public int RemoveAll(Predicate<Customer> p)
return custList.RemoveAll(p);