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";
    }
}

    


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]); } } } [/csharp]

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);
    }
}

    


TakeWhile with two parameters

using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
public class MainClass {
public static void Main() {

string[] presidents = {“ant”, “Hard”, “Harrison”, “Hayes”, “Hoover”, “Jack”};

IEnumerable items = presidents
.TakeWhile((s, i) => s.Length < 10 && i < 5); foreach (string item in items) Console.WriteLine(item); } } [/csharp]

uses an OrderBy and a ThenBy clause with a custom comparer to sort first by word length and then by a case-insensitive descending sort of the words in an array.

   
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public class CaseInsensitiveComparer : IComparer<string> {
    public int Compare(string x, string y) {
        return string.Compare(x, y, true);
    }
}

public class MainClass {
    public static void Main() {

        string[] words = { "a", "A", "b", "B", "C", "c" };

        var sortedWords =
            words.OrderBy(a => a.Length)
                    .ThenByDescending(a => a, new CaseInsensitiveComparer());

        foreach (var s in sortedWords) {
            Console.WriteLine(s);
        }
    }
}

    


First ThenBy Prototype

   
 

using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
public class MainClass {
    public static void Main() {

        string[] presidents = {"ant", "arding", "arrison", "eyes", "over", "Jackson"};

        IEnumerable<string> items = presidents.OrderBy(s => s.Length).ThenBy(s => s);

        foreach (string item in items)
            Console.WriteLine(item);
    }
}

    


First ThenByDescending Prototype

   
 

using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
public class MainClass {
    public static void Main() {

        string[] presidents = {"ant", "arding", "arrison", "eyes", "over", "Jackson"};

        IEnumerable<string> items =
          presidents.OrderBy(s => s.Length).ThenByDescending(s => s);

        foreach (string item in items)
            Console.WriteLine(item);
    }
}