2020年5月15日星期五

Csharp: Linq Query

Csharp: Linq Query


  /// <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);   //  }   // }

没有评论:

发表评论