using System.Collections;
using System.Collections.Generic;
public static void Main()
Console.WriteLine("Hello World");
List<Product> products = Product.GetSampleProductsList();
Predicate<Product> test = delegate(Product p) { return p.Price > 10m; };
List<Product> matches = products.FindAll(test);
Action<Product> print = Console.WriteLine;
private readonly string name;
public string Name { get { return name; } }
public decimal Price { get { return price; } }
public Product(string name, decimal price)
public static ArrayList GetSampleProducts()
ArrayList list = new ArrayList();
list.Add(new Product("West Side Story", 9.99m));
list.Add(new Product("Assassins", 14.99m));
list.Add(new Product("Frogs", 13.99m));
list.Add(new Product("Sweeney Todd", 10.99m));
public static List<Product> GetSampleProductsList()
List<Product> list = new List<Product>();
list.Add(new Product("West Side Story", 9.99m));
list.Add(new Product("Assassins", 14.99m));
list.Add(new Product("Frogs", 13.99m));
list.Add(new Product("Sweeney Todd", 10.99m));
public override string ToString()
return string.Format("{0}: {1}", name, price);
class ProductNameComparer : IComparer
public int Compare(object x, object y)
return p1.Name.CompareTo(p2.Name);
class ProductNameComparer2 : IComparer<Product>
public int Compare(Product x, Product y)
return x.Name.CompareTo(y.Name);