首页 > 代码库 > C#中linq

C#中linq

class IntroToLINQ{            static void Main()    {        // The Three Parts of a LINQ Query:         //  1. Data source.         int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 };        // 2. Query creation.         // numQuery is an IEnumerable<int>         var numQuery =            from num in numbers            where (num % 2) == 0            select num;        // 3. Query execution.         foreach (int num in numQuery)        {            Console.Write("{0,1} ", num);        }    }}
Northwnd db = new Northwnd(@"c:\northwnd.mdf");// Query for customers in London.IQueryable<Customer> custQuery =    from cust in db.Customers    where cust.City == "London"    select cust;
List<int> numQuery2 =    (from num in numbers     where (num % 2) == 0     select num).ToList();// or like this: // numQuery3 is still an int[] var numQuery3 =    (from num in numbers     where (num % 2) == 0     select num).ToArray();
View Code
var queryLondonCustomers = from cust in customers                           where cust.City == "London"                            select cust;
// queryCustomersByCity is an IEnumerable<IGrouping<string, Customer>>   var queryCustomersByCity =      from cust in customers      group cust by cust.City;  // customerGroup is an IGrouping<string, Customer>   foreach (var customerGroup in queryCustomersByCity)  {      Console.WriteLine(customerGroup.Key);      foreach (Customer customer in customerGroup)      {          Console.WriteLine("    {0}", customer.Name);      }  }
class Student{    public string First { get; set; }    public string Last {get; set;}    public int ID { get; set; }    public string Street { get; set; }    public string City { get; set; }    public List<int> Scores;}class Teacher{    public string First { get; set; }    public string Last { get; set; }    public int ID { get; set; }     public string City { get; set; }}
class DataTransformations{    static void Main()    {        // Create the first data source.        List<Student> students = new List<Student>()        {            new Student {First="Svetlana",                Last="Omelchenko",                 ID=111,                 Street="123 Main Street",                City="Seattle",                Scores= new List<int> {97, 92, 81, 60}},            new Student {First="Claire",                Last="O’Donnell",                 ID=112,                Street="124 Main Street",                City="Redmond",                Scores= new List<int> {75, 84, 91, 39}},            new Student {First="Sven",                Last="Mortensen",                ID=113,                Street="125 Main Street",                City="Lake City",                Scores= new List<int> {88, 94, 65, 91}},        };        // Create the second data source.        List<Teacher> teachers = new List<Teacher>()        {                            new Teacher {First="Ann", Last="Beebe", ID=945, City = "Seattle"},            new Teacher {First="Alex", Last="Robinson", ID=956, City = "Redmond"},            new Teacher {First="Michiyo", Last="Sato", ID=972, City = "Tacoma"}        };        // Create the query.         var peopleInSeattle = (from student in students                    where student.City == "Seattle"                     select student.Last)                    .Concat(from teacher in teachers                            where teacher.City == "Seattle"                             select teacher.Last);        Console.WriteLine("The following students and teachers live in Seattle:");        // Execute the query.         foreach (var person in peopleInSeattle)        {            Console.WriteLine(person);        }        Console.WriteLine("Press any key to exit.");        Console.ReadKey();    }}/* Output:    The following students and teachers live in Seattle:    Omelchenko    Beebe */
var query = from cust in Customers            select cust.City;
var query = from cust in Customer            select new {Name = cust.Name, City = cust.City};
class XMLTransform{    static void Main()    {                    // Create the data source by using a collection initializer.         // The Student class was defined previously in this topic.        List<Student> students = new List<Student>()        {            new Student {First="Svetlana", Last="Omelchenko", ID=111, Scores = new List<int>{97, 92, 81, 60}},            new Student {First="Claire", Last="O’Donnell", ID=112, Scores = new List<int>{75, 84, 91, 39}},            new Student {First="Sven", Last="Mortensen", ID=113, Scores = new List<int>{88, 94, 65, 91}},        };        // Create the query.         var studentsToXML = new XElement("Root",            from student in students            let x = String.Format("{0},{1},{2},{3}", student.Scores[0],                    student.Scores[1], student.Scores[2], student.Scores[3])            select new XElement("student",                       new XElement("First", student.First),                       new XElement("Last", student.Last),                       new XElement("Scores", x)                    ) // end "student"                ); // end "Root"         // Execute the query.        Console.WriteLine(studentsToXML);        // Keep the console open in debug mode.        Console.WriteLine("Press any key to exit.");        Console.ReadKey();    }}
< Root>  <student>    <First>Svetlana</First>    <Last>Omelchenko</Last>    <Scores>97,92,81,60</Scores>  </student>  <student>    <First>Claire</First>    <Last>ODonnell</Last>    <Scores>75,84,91,39</Scores>  </student>  <student>    <First>Sven</First>    <Last>Mortensen</Last>    <Scores>88,94,65,91</Scores>  </student></Root>
class FormatQuery{    static void Main()    {                    // Data source.         double[] radii = { 1, 2, 3 };        // Query.        IEnumerable<string> query =            from rad in radii            select String.Format("Area = {0}", (rad * rad) * 3.14);        // Query execution.          foreach (string s in query)            Console.WriteLine(s);        // Keep the console open in debug mode.        Console.WriteLine("Press any key to exit.");        Console.ReadKey();    }}/* Output:    Area = 3.14    Area = 12.56    Area = 28.26*/

http://msdn.microsoft.com/en-us/library/bb397924.aspx

地址;http://msdn.microsoft.com/en-us/library/bb397927.aspx