C#基础:LINQ组合查询

示例代码如下:

组合查询(group query)把数据分组,运行按组排序,计算聚合值,比较等

  1.  class Customer
  2.         {
  3.             public string ID { get; set; }
  4.             public string City { get; set; }
  5.             public string Country { get; set; }
  6.             public string Region { get; set; }
  7.             public decimal Sales { get; set; }
  8.         }
  9.  
  10.         class Program
  11.         {
  12.             static void Main(string[] args)
  13.             {
  14.                 List<Customer> customers = new List<Customer> {
  15.               new Customer { ID="A", City="New York", Country="USA", Region="North America", Sales=9999},
  16.               new Customer { ID="B", City="Mumbai", Country="India", Region="Asia", Sales=8888},
  17.               new Customer { ID="C", City="Karachi", Country="Pakistan", Region="Asia", Sales=7777},
  18.               new Customer { ID="D", City="Delhi", Country="India", Region="Asia", Sales=6666},
  19.               new Customer { ID="E", City="São Paulo", Country="Brazil", Region="South America", Sales=5555 },
  20.               new Customer { ID="F", City="Moscow", Country="Russia", Region="Europe", Sales=4444 },
  21.               new Customer { ID="G", City="Seoul", Country="Korea", Region="Asia", Sales=3333 },
  22.               new Customer { ID="H", City="Istanbul", Country="Turkey", Region="Asia", Sales=2222 },
  23.               new Customer { ID="I", City="Shanghai", Country="China", Region="Asia", Sales=1111 },
  24.               new Customer { ID="J", City="Lagos", Country="Nigeria", Region="Africa", Sales=1000 },
  25.               new Customer { ID="K", City="Mexico City", Country="Mexico", Region="North America", Sales=2000 },
  26.               new Customer { ID="L", City="Jakarta", Country="Indonesia", Region="Asia", Sales=3000 },
  27.               new Customer { ID="M", City="Tokyo", Country="Japan", Region="Asia", Sales=4000 },
  28.               new Customer { ID="N", City="Los Angeles", Country="USA", Region="North America", Sales=5000 },
  29.               new Customer { ID="O", City="Cairo", Country="Egypt", Region="Africa", Sales=6000 },
  30.               new Customer { ID="P", City="Tehran", Country="Iran", Region="Asia", Sales=7000 },
  31.               new Customer { ID="Q", City="London", Country="UK", Region="Europe", Sales=8000 },
  32.               new Customer { ID="R", City="Beijing", Country="China", Region="Asia", Sales=9000 },
  33.               new Customer { ID="S", City="Bogotá", Country="Colombia", Region="South America", Sales=1001 },
  34.               new Customer { ID="T", City="Lima", Country="Peru", Region="South America", Sales=2002 }
  35.            };
  36.               //组合排序
  37.                 var queryResults =               
  38.                     from c in customers
  39.                     group c by c.Region into cg                  //计算每个组的总和,生成一个新的结果集cg
  40.                     select new { TotalSales = cg.Sum(c => c.Sales), Region = cg.Key }    //匿名类型TotalScales
  41.                    ;
  42.                 var orderedResults =
  43.                     from cg in queryResults             
  44.                     orderby cg.TotalSales descending           //descending 降序排序
  45.                     select cg
  46.                  ;
  47.                 //foreach循环输出结果                
  48.                 foreach (var item in orderedResults)
  49.                 {
  50.                     WriteLine($"{item.TotalSales}\t: {item.Region}");
  51.                 }  
  52.  
  53.             }
  54.         }

猜你喜欢

转载自blog.csdn.net/QQhelphelp/article/details/86532634