using System.Collections.Generic;
public static void Main()
Console.WriteLine("Assignment 1");
List<Vehicle> list = new List<Vehicle>
foreach (var vehicle in list)
Console.WriteLine(vehicle.Price);
Console.WriteLine("\nAssignment 2");
Vehicle first = new Vehicle { Price = 2 };
Vehicle second = new Vehicle { Price = 2 };
Console.WriteLine(first.Equals(second));
Console.WriteLine("\nAssignment 3");
VehicleCollection collection = new VehicleCollection();
collection.Add(new Vehicle { Price = 5} );
collection.Add(new Vehicle { Price = 2} );
collection.Add(new Vehicle { Price = 9} );
collection.Add(new Vehicle { Price = 1} );
foreach (Vehicle vehicle in collection)
Console.WriteLine(vehicle.Price);
class VehicleCollection : IEnumerable<Vehicle>
public VehicleCollection()
list = new List<Vehicle>();
public void Add(Vehicle vehicle)
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
return this.list.GetEnumerator();
IEnumerator<Vehicle> IEnumerable<Vehicle>.GetEnumerator()
return this.list.GetEnumerator();
class Vehicle : IComparable<Vehicle>
public int CompareTo(Vehicle other)
return this.Price.CompareTo(other.Price);
public override bool Equals(object obj)
return (this.Price == ((Vehicle) obj).Price);
public override int GetHashCode()
return this.Price.GetHashCode();