Collections Data Structure C#

using System;
using System.Collections.Generic;
public class Starter {
    public static void Main() {
        CommissionedEmployee[] salespeople =
                {new CommissionedEmployee("Bob"),
                 new CommissionedEmployee("Ted"),
                 new CommissionedEmployee("Sally")};
        Employee[] employees =
            (Employee[])salespeople.Clone();
        foreach (Employee person in
                employees) {
            person.Pay();
        }
    }
}
public class Employee {
    public Employee(string name) {
        m_Name = name;
    }
    public virtual void Pay() {
        Console.WriteLine("Paying {0}", m_Name);
    }
    private string m_Name;
}
public class CommissionedEmployee : Employee {
    public CommissionedEmployee(string name) :
        base(name) {
    }
    public override void Pay() {
        base.Pay();
        Console.WriteLine("Paying commissions");
    }
}