Csharp/C Sharp/LINQ/select new
Содержание
Constructor new object with select statement
<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class Contact {
public int Id; public string Name; public static void PublishContacts(Contact[] contacts) { foreach (Contact c in contacts) Console.WriteLine("Contact Id: {0} Contact: {1}", c.Id, c.Name); }
}
public class Employee {
public int id; public string firstName; public string lastName; public static ArrayList GetEmployees() { 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" }); return (al); }
} public class MainClass {
public static void Main() { ArrayList alEmployees = Employee.GetEmployees(); Contact[] contacts = alEmployees .Cast<Employee>() .Select(e => new Contact { Id = e.id, Name = string.Format("{0} {1}", e.firstName, e.lastName) }) .ToArray<Contact>(); Contact.PublishContacts(contacts); }
}
</source>
partitions an array of words into groups according to the first letter of each word.
<source lang="csharp"> using System; using System.Collections.Generic; using System.Linq; using System.Text; public class MainClass {
public static void Main() { string[] words = { "b", "c", "a", "ba", "ae", "ch" }; var wordGroups = from w in words group w by w[0] into g select new { FirstLetter = g.Key, Words = g }; foreach (var g in wordGroups) { Console.WriteLine("Words that start with the letter "{0}":", g.FirstLetter); foreach (var w in g.Words) { Console.WriteLine(w); } } }
}
</source>
Query a List or objects and create new objects
<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 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; } }
} class Role {
int _id; string role; public int ID { get { return _id; } set { _id = value; } } public string Role { get { return role; } set { role = value; } }
} class Program {
static void Main(string[] args) { 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"} }; List<Role> roles = new List<Role> { new Role { ID = 1, Role = "Manager" }, new Role { ID = 2, Role = "Developer" } }; var query = from p in people where p.ID == 1 select new { p.FirstName, p.LastName }; }
}
</source>
select new
<source lang="csharp"> using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Linq; using System.Reflection; public class MainClass{
public static void Main(){ var q = from m in typeof(int).GetMethods() orderby m.Name group m by m.Name into gb select new {Name = gb.Key}; }
}
</source>