LinQ综合应用实例

     直接上代码,内容很浅显易懂,在这里就不做更多的解释,解释见代码注释。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Threading.Tasks;
 
public partial class test : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string[] names = { "Wang", "Biao", "WangBiao", "Kingtiger" };
        var q1 = names.Where(a => a.StartsWith("W"));//直接查询
        var q2 = from a in names
                 where a.StartsWith("W")
                 select a;//linq查询
        var q3 = from a in names
                 where a.StartsWith("W")
                 orderby a descending
                 select a;//linq查询,包括排序,倒序要加上descending
        var q4 = names.OrderBy(a => a).Where(a=>a.StartsWith("W"));//直接排序
        var q5 = names.OrderByDescending(a => a).Where(a=>a.StartsWith("W"));//直接倒序排序
 
        var q6 = from a in names
                 select new
                 {
                     HI = a + ",您好!"
                 };//查询后重构输出
 
        var q7 = names.Select(a => new { HI = a + ",您好!" });//直接查询构造输出
 
        List<Person> persons = new List<Person>();
        persons.Add(new Person() { ID="0001",Name="Kingtiger" });
        persons.Add(new Person() { ID = "0002", Name = "Wang" });
        persons.Add(new Person() { ID = "0001", Name = "Biao" });
        persons.Add(new Person() { ID = "0004", Name = "WangBiao" });
 
        var q8 = from p in persons
                 orderby p.ID, p.Name
                 select p;//多级排序,先排序ID,然后再排序Name
        var q9 = persons.OrderBy(a => a.ID).ThenBy(a => a.Name).Select(a => a);//直接两个排序
 
        var qt = from p in persons
                 where p.Name.Contains("W") || p.Name.Contains("Biao")
                 select p;//第一次查询进行过滤
        var q10 = from p in qt
                  orderby p.Name descending
                  select p.Name;//对一次查询结果进行第二次处理
 
        var q11 = from p in persons
                  group p by p.ID into cg
                  select new {
                    GroupID = cg.Key,
                    GroupCount= cg.Count()
                  };//分组查询,将结果提取出来
 
        List<Order> orders = new List<Order>();
        orders.Add(new Order() { UserID="0002",OrderID="001", OrderName="苹果" });
        orders.Add(new Order() { UserID = "0002", OrderID = "003", OrderName = "香蕉" });
        orders.Add(new Order() { UserID = "0004", OrderID = "002", OrderName = "荔枝" });
 
        var q12 = from p in persons
                  join o in orders on p.ID equals o.UserID
                  select new
                  {
                      PName = p.Name,
                      POrderName = o.OrderName
                  };
        foreach (var p in q12)
        {
            Response.Write(p+"<br/>");
        }
    }
}
 
public class Person
{
    public string ID { set; get; }
    public string Name { set; get; }
}
 
public class Order
{
    public string OrderID { set; get; }
    public string OrderName { set; get; }
    public string UserID { set; get; }
}

LinQ综合应用实例

上一篇:150 Opening ASCII mode data connection. FTP连接的PASV和PORT方式


下一篇:设置ListBox的Item的样式