public class Customers : List<Customer> {
  public Customers(IEnumerable<Customer> items): base(items) {
  }
}

public static class CustomersExtension {
  public static Customers Where(this Customers source,
    Func<Customer, Boolean> predicate) {
    Customers result = new Customers();

    Console.WriteLine("Vlastn roziujc metoda Where");
    foreach (var item in source) {
      if (predicate(item))
        result.Add(item);
    }
    return result;
  }
}
