Csharp/C Sharp/LINQ/ToArray — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 14:38, 26 мая 2010
Содержание
Calling the ToArray 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"}; string[] names = presidents.OfType<string>().ToArray(); foreach (string name in names) Console.WriteLine(name); }
}
</source>
Convert query result to an Array
<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; string[] names = query.ToArray(); for (int i = 0; i < names.Length; i++) Console.WriteLine(names[i]); }
}
</source>
Convert query to array with ToArray
<source lang="csharp"> 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"; }
}
</source>
generates an array of double values by first using a query expression with orderby
<source lang="csharp"> 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]); } }
}
</source>
To List: convert query result to list
<source lang="csharp"> 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); } }
}
</source>
Use Conversion Operators ToArray
<source lang="csharp"> 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]); } }
}
</source>