Convert an ArrayList to an IEnumerable That Can Be Used with the Typical Standard Query Operators

image_pdfimage_print
   
 

using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
public class Employee {
    public int id;
    public string firstName;
    public string lastName;

    public static ArrayList GetEmployeesArrayList() {
        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" });
        al.Add(new Employee { id = 4, firstName = "D", lastName = "L" });
        al.Add(new Employee { id = 101, firstName = "K", lastName = "F" });
        return (al);
    }

    public static Employee[] GetEmployeesArray() {
        return ((Employee[])GetEmployeesArrayList().ToArray(typeof(Employee)));
    }
}

public class MainClass {
    public static void Main() {
        ArrayList employees = Employee.GetEmployeesArrayList();
        Console.WriteLine("The data type of employees is " + employees.GetType());
        var seq = employees.Cast<Employee>();
        Console.WriteLine("The data type of seq is " + seq.GetType());
        var emps = seq.OrderBy(e => e.lastName);
        foreach (Employee emp in emps)
            Console.WriteLine("{0} {1}", emp.firstName, emp.lastName);
    }
}

    


This entry was posted in LINQ. Bookmark the permalink.