C#应用中的LINQ 查询语言

Main函数
 1 static void Main(string[] args)
2 {
3 //初始化数据库
4 var customers = new[] {
5 new { CustomerID = 1, FirstName = "Orlando", LastName = "Gee",
6 CompanyName = "A Bike Store" },
7 new { CustomerID = 2, FirstName = "Keith", LastName = "Harris",
8 CompanyName = "Bike World" },
9 new { CustomerID = 3, FirstName = "Donna", LastName = "Carreras",
10 CompanyName = "A Bike Store" },
11 new { CustomerID = 4, FirstName = "Janet", LastName = "Gates",
12 CompanyName = "Fitness Hotel" },
13 new { CustomerID = 5, FirstName = "Lucy", LastName = "Harrington",
14 CompanyName = "Grand Industries" },
15 new { CustomerID = 6, FirstName = "David", LastName = "Liu",
16 CompanyName = "Bike World" },
17 new { CustomerID = 7, FirstName = "Donald", LastName = "Blanton",
18 CompanyName = "Grand Industries" },
19 new { CustomerID = 8, FirstName = "Jackie", LastName = "Blackwell",
20 CompanyName = "Fitness Hotel" },
21 new { CustomerID = 9, FirstName = "Elsa", LastName = "Leavitt",
22 CompanyName = "Grand Industries" },
23 new { CustomerID = 10, FirstName = "Eric", LastName = "Lang",
24 CompanyName = "Distant Inn" }
25 };
26
27 var addresses = new[] {
28 new { CompanyName = "A Bike Store", City = "New York", Country = "United States"},
29 new { CompanyName = "Bike World", City = "Chicago", Country = "United States"},
30 new { CompanyName = "Fitness Hotel", City = "Ottawa", Country = "Canada"},
31 new { CompanyName = "Grand Industries", City = "London",
32 Country = "United Kingdom"},
33 new { CompanyName = "Distant Inn", City = "Tetbury", Country = "United Kingdom"}
34 };
35
36 //选中数据库中的FirstName
37 IEnumerable<string> customerFirstNames =
38 customers.Select(cust => cust.FirstName);
39 //将FirstNames显示
40 foreach (string name in customerFirstNames)
41 {
42 Console.WriteLine(name);
43 }
44 Console.WriteLine();
45
46 //先根据地址的国家找到满足条件的,然后再选中满足条件的公司名字
47 IEnumerable<string> usCompanies =
48 addresses.Where(addr => String.Equals(addr.Country, "United States"))
49 .Select(usComp => usComp.CompanyName);
50
51 foreach (string name in usCompanies)
52 {
53 Console.WriteLine(name);
54 }
55 Console.WriteLine();
56
57 //先根据公司名字首字母排序,然后再选中公司名字
58 IEnumerable<string> companyNames =
59 addresses.OrderBy(addr => addr.CompanyName).Select(comp => comp.CompanyName);
60
61 foreach (string name in companyNames)
62 {
63 Console.WriteLine(name);
64 }
65 Console.WriteLine();
66
67 //按国家分组
68 var companiesGroupedByCountry =
69 addresses.GroupBy(addrs => addrs.Country);
70 //分别显示每个国家的公司数量与其名字
71 foreach (var companiesPerCountry in companiesGroupedByCountry)
72 {
73 Console.WriteLine("Country: {0}\t{1} companies",
74 companiesPerCountry.Key, companiesPerCountry.Count());
75 foreach (var companies in companiesPerCountry)
76 {
77 Console.WriteLine("\t{0}", companies.CompanyName);
78 }
79 }
80 Console.WriteLine();
81
82 //匹配中间变量CompanyName相等的,从而构造出所需要的输出
83 var citiesAndCustomers = customers
84 .Select(c => new { c.FirstName, c.LastName, c.CompanyName })
85 .Join(addresses, custs => custs.CompanyName, addrs => addrs.CompanyName,
86 (custs, addrs) => new { custs.FirstName, custs.LastName, addrs.Country });
87
88 foreach (var row in citiesAndCustomers)
89 {
90 Console.WriteLine(row);
91 }
92 Console.WriteLine();
93
94 Console.ReadKey();
95 }

 

posted @ 2012-03-12 13:18  hercMoray  阅读(232)  评论(0编辑  收藏  举报