public static void Main()
int[] arr = new int[]{4,2,3,1,5,3};
Employee[] employees = new Employee[] { new Employee("John", 21), new Employee("Bob", 31), new Employee("Mary", 25)};
Console.WriteLine("Welcome to inbuilt sort in C#");
Console.WriteLine("Primitive type array after sorting:");
foreach(int item in arr){
Console.Write(item + ", ");
Console.WriteLine("\n Complex type array after sorting by Name using IComparable:");
foreach(Employee item in employees){
Console.Write(item.Name + ", ");
Array.Sort(employees, CustomCompareEmployee);
Console.WriteLine("\n Complex type array after sorting by Age using delegate:");
foreach(Employee item in employees){
Console.Write(item.Name + ", ");
public class Employee: IComparable{
public string Name { get; set;}
public int Age { get; set;}
public Employee(string name, int age){
public int CompareTo(object employee2){
return this.Name.CompareTo(((Employee)(employee2)).Name);
public static int CustomCompareEmployee(Employee employee1, Employee employee2){
return employee1.Age.CompareTo(employee2.Age);