using System.Collections.Generic;
DateTime BestBeforeDate { get; set; }
String FruitName { get; set; }
public class Banana : IFruit
public DateTime BestBeforeDate { get; set; }
public String FruitName { get; set; }
public Banana(DateTime bestBeforeDate)
BestBeforeDate = bestBeforeDate;
public class Orange : IFruit
public DateTime BestBeforeDate { get; set; }
public String FruitName { get; set; }
public Orange(DateTime bestBeforeDate)
BestBeforeDate = bestBeforeDate;
public class Apple : IFruit
public DateTime BestBeforeDate { get; set; }
public String FruitName { get; set; }
public Apple(DateTime bestBeforeDate)
BestBeforeDate = bestBeforeDate;
public static void Main()
List<IFruit> Floor = new List<IFruit>();
List<IFruit> Bucket = new List<IFruit>();
List<IFruit> Bin = new List<IFruit>();
PrintList("Fruits on Floor", Floor);
PrintList("Fruits in Bucket", Bucket);
PrintList("Fruits in Bin", Bin);
PrintList("Fruits on Floor", Floor);
public static void AddFuritsToFloor(IList<IFruit> Floor){
Floor.Add(new Banana(System.DateTime.Now.AddDays(10)));
Floor.Add(new Apple(System.DateTime.Now.AddDays(-5)));
Floor.Add(new Orange(System.DateTime.Now.AddDays(2)));
Floor.Add(new Apple(System.DateTime.Now.AddDays(-10)));
Floor.Add(new Banana(System.DateTime.Now));
public static void PrintList(string name, List<IFruit> lst){
Console.WriteLine("\n\n"+ name);
foreach (IFruit fruit in lst)
Console.WriteLine(fruit.FruitName + " - " + fruit.BestBeforeDate + " - " + (fruit.BestBeforeDate > System.DateTime.Now? "Good":"Expired") );