C# Linq Join GroupJoin

首先准备两个类

 1   private class Person
 2         {
 3             public int CityID { set; get; }
 4 
 5             public string Name { set; get; }
 6         }
 7 
 8         private class City
 9         {
10             public int ID { set; get; }
11 
12             public string Name { set; get; }
13         }
 1 Person[] persons = new Person[]
 2             {
 3                 new Person{ CityID = 1, Name = "韩梅梅" },
 4                 new Person{ CityID = 2, Name = "王大锤" },
 5                 new Person{ CityID = 3, Name = "刘明" },
 6                 new Person{ CityID = 4, Name = "叶飞" },
 7                 new Person{ CityID = 5, Name = "秦尚" },
 8                 new Person{ CityID = 1, Name = "李磊" },
 9                 new Person{ CityID = 3, Name = "张三" },
10             };
11             City[] cities = new City[]
12             {
13                 new City{ ID = 1,Name = "广州" },
14                 new City{ ID = 2,Name = "深圳" },
15                 new City{ ID = 3,Name = "北京" },
16                 new City{ ID = 4,Name = "上海" }
17             };
18 
19             //内连接 根据Id与CityID 把Peson的城市找出来
20             var query1 = persons.Join(cities, p => p.CityID, c => c.ID, (p, c) => $"{p.Name} 在 {c.Name}");
21             foreach (var item in query1)
22             {
23                 Console.WriteLine($"{item}");
24 
25                 //韩梅梅 在 广州
26                 //王大锤 在 深圳
27                 //刘明 在 北京
28                 //叶飞 在 上海
29                 //李磊 在 广州
30                 //张三 在 北京
31             }
32 
33             //组连接,根据Id与CityID,把CityId相同的Peson分组,
34 
35             var query2 = cities.GroupJoin(persons, c => c.ID, p => p.CityID, (c, persons) => new { c = c.Name, p = persons });
36 
37             foreach (var item in query2)
38             {
39                 Console.WriteLine($"{item.c}=====");
40                 foreach (var c in item.p)
41                 {
42                     Console.WriteLine($"{c.Name}");
43                 }
44                 //广州 =====
45                 //韩梅梅
46                 //李磊
47                 //深圳 =====
48                 //王大锤
49                 //北京 =====
50                 //刘明
51                 //张三
52                 //上海 =====
53                 //叶飞
54             }

 

posted @ 2021-12-03 15:23  只吃肉不喝酒  阅读(137)  评论(0编辑  收藏  举报