VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > 简明python教程 >
  • Csharp: Linq Query

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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
     /// <summary>
        /// Linq 连接查询
        /// Geovin Du
        /// 涂聚文
        /// https://docs.microsoft.com/en-us/dotnet/csharp/linq/perform-inner-joins
        /// </summary>
        /// <param name="confirmed"></param>
        /// <param name="deaths"></param>
        /// <param name="recovered"></param>
        /// <returns></returns>
        public List<HistoryList> getUnionNumber(List<History> confirmed, List<History> deaths, List<History> recovered)
        {
            List<HistoryList> list = new List<HistoryList>();
 
 
            if (recovered.Count > 0)
            {
                HistoryList newinfo = null;
                //1 种方法
                var newinfto = (from in confirmed
                                join in deaths on d.datename equals c.datename
                                join in recovered on c.datename equals s.datename
                                select new
                                {
                                    datename = d.datename,//
                                    numberConfirmed = d.number,//
                                    numberDeaths = c.number, //
                                    numberRecovered = s.number  //
                                }).ToList();
                int k = 1;
                foreach (var ownerAndDu in newinfto)
                {
                    newinfo = new HistoryList();
                    newinfo.Id = k;
                    newinfo.datename = ownerAndDu.datename;
                    newinfo.numberConfirmed = ownerAndDu.numberConfirmed;
                    newinfo.numberDeaths = ownerAndDu.numberDeaths;
                    newinfo.numberRecovered = ownerAndDu.numberRecovered;
                    k++;
                    list.Add(newinfo);
                }
               
            }
            else
            {
                HistoryList newinfo = null;
                //1 种方法
                var newinfto = from in confirmed
                               join in deaths on d.datename equals c.datename
                               select new
                               {
                                   datename = d.datename,
                                   numberConfirmed = d.number,
                                   numberDeaths = c.number
                            };
                int k = 1;  
                foreach (var ownerAndDu in newinfto)
                {
                    newinfo = new HistoryList();
                    newinfo.Id = k;
                    newinfo.datename = ownerAndDu.datename;
                    newinfo.numberConfirmed = ownerAndDu.numberConfirmed;
                    newinfo.numberDeaths = ownerAndDu.numberDeaths;
                    k++;
                    list.Add(newinfo);
                }
 
            }
 
#region
            //for (int i = 0; i < confirmed.Count; i++)
            //{
 
            //    HistoryList newinfo = null;
            //    if (recovered.Count > 0)
            //    {                  
        
            //        //var ss1 =confirmed.Join(deaths, p => p.datename, r => r.datename, (p, r) => p).OrderByDescending(p => p.datename).ToList();
            //        //2 种方法
            //        if (confirmed[i].datename == deaths[i].datename && confirmed[i].datename == recovered[i].datename)
            //        {
            //            newinfo = new HistoryList();
            //            newinfo.datename = confirmed[i].datename;
            //            newinfo.numberConfirmed = confirmed[i].number;
            //            newinfo.numberDeaths = deaths[i].number;
            //            newinfo.numberRecovered = recovered[i].number;
            //            list.Add(newinfo);
            //        }                  
            //    }
            //    else
            //    {   
            //        //2 种方法
            //        if (confirmed[i].datename == deaths[i].datename)
            //        {
            //            newinfo = new HistoryList();
            //            newinfo.datename = confirmed[i].datename;
            //            newinfo.numberConfirmed = confirmed[i].number;
            //            newinfo.numberDeaths = deaths[i].number;
            //            list.Add(newinfo);
            //        }
            //    }
#endregion
 
            
            return list;
 
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack)
                {
                    id = Request.QueryString["Id"];
                    type = Request.QueryString["type"];
                    country = Request.QueryString["country"];
                    province = Request.QueryString["province"];
                    Response.Write("Value:"+id + "," + type+","+country+","+province);
                    change(int.Parse(type));
                    List<Location> lodea = col.deaths.locations.Where(x => x.country == country && x.province==province).ToList();
                    //List<Location> lodea = dea.locations.Where(x => x.country == "US").ToList();
                    //List<Location> locir = conf.locations.Where(x => x.country == "US").ToList();
                    List<Location> locir = col.confirmed.locations.Where(x => x.country == country && x.province == province).ToList();
                    // List<Location> lorec = recov.locations.Where(x => x.country == "US").ToList();
                    List<Location> lorec = col.recovered.locations.Where(x => x.country == country && x.province == province).ToList();
                    //in
                    var geovindu = from geovi in col.recovered.locations
                                   where (new string[] { "china""chile""Canada" }).Contains(geovi.country)
                                   select geovi;
 
                    List<History> hidea = lodea[0].history;  // dea.locations.Where(x => x.country == "Yemen").ToList().Where(x => x.history.All).ToList();
                    List<History> hicor = locir[0].history;
                    List<History> hirec=new List<History>();
                    if(lorec.Count>0)
                    {
                       hirec = lorec[0].history;
                    }
                    
 
                    List<HistoryList> uniolist = new List<HistoryList>();
                    uniolist = getUnionNumber(hicor, hidea, hirec);
                    //分页查询
                    var geovin = (from du in uniolist
                                  where du.Id > 10
                                  orderby du.Id descending
                                  select du).Skip(10).Take(10); //取第11条到第20条数据            
 
                    this.GridView1.DataSource = uniolist;
                    this.GridView1.DataBind();
 
 
                }
 
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message.ToString());
            }
        }
    }

相关教程