/// <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 d in confirmed join c in deaths on d.datename equals c.datename join s 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 d in confirmed join c 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); // } // }
没有评论:
发表评论