using System; using System.Collections.Generic; using System.Linq; static class TestDictionary { static void Main() { Dictionary<int, string> frenchNumbers; frenchNumbers = new Dictionary<int, string>(); frenchNumbers.Add(0, "zero"); frenchNumbers.Add(1, "one"); frenchNumbers.Add(2, "two"); frenchNumbers.Add(3, "three"); frenchNumbers.Add(4, "four"); var evenFrenchNumbers = from entry in frenchNumbers where (entry.Key % 2) == 0 select entry.Value; } }
LINQ
Select array item by type
using System; using System.Linq; static class TestArray { static void Main() { Object[] array = { "String", 12, true, 'a' }; var types = array .Select(item => item.GetType().Name) .OrderBy(type => type); } }
Query Reuse
using System;
using System.Linq;
static class QueryReuse {
static double Square(double n) {
Console.WriteLine(“Computing Square(” + n + “)…”);
return Math.Pow(n, 2);
}
public static void Main() {
int[] numbers = { 1, 2, 3 };
var query =
from n in numbers
select Square(n);
foreach (var n in query)
Console.WriteLine(n);
for (int i = 0; i < numbers.Length; i++) numbers[i] = numbers[i] + 10; foreach (var n in query) Console.WriteLine(n); } } [/csharp]
Constructor new object with select statement
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); } }
partitions an array of words into groups according to the first letter of each word.
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); } } } }
Query a List or objects and create new objects
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 }; } }
select new
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}; } }