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>O'Donnell</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

你可能感兴趣的:(LINQ)