Csharp/C Sharp/LINQ/ToList

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Calling the ToList Operator

<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass {

   public static void Main() {
       string[] presidents = {"G", "H", "a", "H", "over", "Jack"};
       List<string> names = presidents.ToList();
       foreach (string name in names)
           Console.WriteLine(name);
   }

}

</source>


calling ToList.

<source lang="csharp"> using System; using System.Collections.Generic; using System.Linq; public class MainClass {

   public static void Main() {
       var numbers = new List<int>() { 1, 2 };
       List<int> timesTen = numbers
         .Select(n => n * 10)
         .ToList();
       numbers.Clear();
       Console.WriteLine(timesTen.Count);
   }

}

</source>


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

<source lang="csharp"> 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);
   }

}

</source>


Convert Query result to a List

<source lang="csharp"> using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Linq; class Employee {

   int _id;
   int _idRole;
   string _lastName;
   string _firstName;
   public int ID {
       get { return _id; }
       set { _id = value; }
   }
   public int IDRole {
       get { return _idRole; }
       set { _idRole = value; }
   }
   public string LastName {
       get { return _lastName; }
       set { _lastName = value; }
   }
   public string FirstName {
       get { return _firstName; }
       set { _firstName = value; }
   }

} public class MainClass {

   public static void Main() {
       List<Employee> people = new List<Employee> {
             new Employee  { ID = 1, IDRole = 1, LastName = "A", FirstName = "B"},
             new Employee  { ID = 2, IDRole = 2, LastName = "G", FirstName = "T"}
           };
       var query = from p in people
                   where p.LastName.Length == 4
                   select p.LastName;
       List<string> names = query.ToList<string>();
       Console.Write(names);
   }

}

</source>