C#基础:LINQ之Join查询

Join查询可以用一个查询,搜索两个相关数据,用键字段把结果连接起来

示例代码如下:

  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.     class Order
  10.     {
  11.         public string ID { get; set; }
  12.         public decimal Amount { get; set; }
  13.     }
  14.     class Program
  15.     {
  16.         static void Main(string[] args)
  17.         {
  18.             List<Order> orders = new List<Order> {
  19.               new Order { ID="P", Amount=100 },
  20.               new Order { ID="Q", Amount=200 },
  21.               new Order { ID="R", Amount=300 },
  22.               new Order { ID="S", Amount=400 },
  23.               new Order { ID="T", Amount=500 },
  24.               new Order { ID="U", Amount=600 },
  25.               new Order { ID="V", Amount=700 },
  26.               new Order { ID="W", Amount=800 },
  27.               new Order { ID="X", Amount=900 },
  28.               new Order { ID="Y", Amount=1000 },
  29.               new Order { ID="Z", Amount=1100 }
  30.             };
  31.             List<Customer> customers = new List<Customer> {
  32.               new Customer { ID="A", City="New York", Country="USA", Region="North America", Sales=9999},
  33.               new Customer { ID="B", City="Mumbai", Country="India", Region="Asia", Sales=8888},
  34.               new Customer { ID="C", City="Karachi", Country="Pakistan", Region="Asia", Sales=7777},
  35.               new Customer { ID="D", City="Delhi", Country="India", Region="Asia", Sales=6666},
  36.               new Customer { ID="E", City="São Paulo", Country="Brazil", Region="South America", Sales=5555 },
  37.               new Customer { ID="F", City="Moscow", Country="Russia", Region="Europe", Sales=4444 },
  38.               new Customer { ID="G", City="Seoul", Country="Korea", Region="Asia", Sales=3333 },
  39.               new Customer { ID="H", City="Istanbul", Country="Turkey", Region="Asia", Sales=2222 },
  40.               new Customer { ID="I", City="Shanghai", Country="China", Region="Asia", Sales=1111 },
  41.               new Customer { ID="J", City="Lagos", Country="Nigeria", Region="Africa", Sales=1000 },
  42.               new Customer { ID="K", City="Mexico City", Country="Mexico", Region="North America", Sales=2000 },
  43.               new Customer { ID="L", City="Jakarta", Country="Indonesia", Region="Asia", Sales=3000 },
  44.               new Customer { ID="M", City="Tokyo", Country="Japan", Region="Asia", Sales=4000 },
  45.               new Customer { ID="N", City="Los Angeles", Country="USA", Region="North America", Sales=5000 },
  46.               new Customer { ID="O", City="Cairo", Country="Egypt", Region="Africa", Sales=6000 },
  47.               new Customer { ID="P", City="Tehran", Country="Iran", Region="Asia", Sales=7000 },
  48.               new Customer { ID="Q", City="London", Country="UK", Region="Europe", Sales=8000 },
  49.               new Customer { ID="R", City="Beijing", Country="China", Region="Asia", Sales=9000 },
  50.               new Customer { ID="S", City="Bogotá", Country="Colombia", Region="South America", Sales=1001 },
  51.               new Customer { ID="T", City="Lima", Country="Peru", Region="South America", Sales=2002 }
  52.            };
  53.             //Join查询
  54.             var queryResults =
  55.                from c in customers
  56.                join o in orders on c.ID equals o.ID            //用join连接两个查询数据
  57.                select new { c.ID, c.City, SalesBefore = c.Sales, NewOrder = o.Amount, SalesAfter = c.Sales + o.Amount };
  58.             foreach (var item in queryResults)
  59.             {
  60.                 WriteLine(item);
  61.             }        
  62.         }
  63.     }

猜你喜欢

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