Csharp/CSharp Tutorial/LINQ/ToArray — различия между версиями

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

Версия 15:31, 26 мая 2010

Calling the ToArray Operator

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"};
        string[] names = presidents.OfType<string>().ToArray();
        foreach (string name in names)
            Console.WriteLine(name);
    }
}

Convert query result to an Array

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;
        string[] names = query.ToArray();
        for (int i = 0; i < names.Length; i++)
            Console.WriteLine(names[i]);
    }
}

Convert query to array

using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Linq;
using System.Linq;
    class Car
    {
        public string PetName;
        public string Color;
        public int Speed;
        public string Make;
        
        public override string ToString()
        {
            return string.Format("Make={0}, Color={1}, Speed={2}, PetName={3}",Make, Color, Speed, PetName);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Car[] myCars = new []{
                new Car{ PetName = "A", Color = "Silver", Speed = 100, Make = "BMW"},
                new Car{ PetName = "B", Color = "Black", Speed = 55, Make = "VW"},
                new Car{ PetName = "C", Color = "White", Speed = 43, Make = "Ford"}
            };
        
            var subset = (from c in myCars 
                where c.Speed > 55 select c).ToArray<Car>();
            foreach (Car c in subset)
            {
                Console.WriteLine("{0} is going {1} MPH", c.PetName, c.Speed);
            }
        
        }
    }

Convert query to array with ToArray

using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Reflection;
using System.Linq;
using System.Xml;
using System.Xml.Linq;
class Person {
    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; }
    }
}
class Program {
    static void Main(string[] args) {
        List<Person> people = new List<Person> {
               new Person { ID = 1, IDRole = 1, LastName = "A", FirstName = "B"},
               new Person { ID = 2, IDRole = 2, LastName = "G", FirstName = "T"}
            };
        var query = people
                    .Where(p => p.ID == 1)
                    .Select(p => new { p.FirstName, p.LastName })
                    .ToArray();
        people[0].FirstName = "F";
    }
}

Generating an array of double values by first using a query expression with orderby

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public class MainClass {
    public static void Main() {
        double[] doubles = { 1.7, 2.3, 1.9, 4.1, 2.9 };
        var sortedDoubles =
            from d in doubles
            orderby d descending
            select d;
        var doublesArray = sortedDoubles.ToArray();
        Console.WriteLine("Every other double from highest to lowest:");
        for (int d = 0; d < doublesArray.Length; d += 2) {
            Console.WriteLine(doublesArray[d]);
        }
    }
}

To List: convert query result to list

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public class MainClass {
    public static void Main() {
        string[] words = { "ch", "a", "b" };
        var sortedWords =
            from w in words
            orderby w
            select w;
        var wordList = sortedWords.ToList();
        Console.WriteLine("The sorted word list:");
        foreach (var w in wordList) {
            Console.WriteLine(w);
        }
    }
}

Use Conversion Operators ToArray

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public class MainClass {
    public static void Main() {
        double[] doubles = { 1.7, 2.3, 1.9, 4.1, 2.9 };
        var sortedDoubles =
            from d in doubles
            orderby d descending
            select d;
        var doublesArray = sortedDoubles.ToArray();
        Console.WriteLine("Every other double from highest to lowest:");
        for (int d = 0; d < doublesArray.Length; d += 2) {
            Console.WriteLine(doublesArray[d]);
        }
    }
}