LINQ C# Tutorial

using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
public class Contact {
    public int Id;
    public string Name;
    public static void PublishContacts(Contact[] contacts) {
        foreach (Contact c in contacts)
            Console.WriteLine("Contact Id: {0} Contact: {1}", c.Id, c.Name);
    }
}
public class Employee {
    public int id;
    public string firstName;
    public string lastName;
    public static ArrayList GetEmployees() {
        ArrayList al = new ArrayList();
        al.Add(new Employee { id = 1, firstName = "J", lastName = "R" });
        al.Add(new Employee { id = 2, firstName = "W", lastName = "G" });
        al.Add(new Employee { id = 3, firstName = "A", lastName = "H" });
        return (al);
    }
}
public class MainClass {
    public static void Main() {
        ArrayList alEmployees = Employee.GetEmployees();
        Contact[] contacts = alEmployees
            .Cast()
            .Select(e => new Contact {
                Id = e.id,
                Name = string.Format("{0} {1}", e.firstName, e.lastName)
            })
            .ToArray();
        Contact.PublishContacts(contacts);
    }
}