C# Linq 使用ZIP同步分组其他对象

有时候对于一个列表想分组的同时把其他的列表一起分组

 1             var breaked = new int[] { 2, 2, 3, 3, 0, 6 };//注意列表元素的数量并不相同,只会使用短的那一个列表
 2             var str = new string[] { "a", "b", "c", "d", "e" };
 3 
 4             //先把两个序列关联起来,组成一个匿名对象,再根据里面对象的属性分组
 5             var query = breaked.Zip(str, (i, j) => new { n = i, m = j }).GroupBy(z => z.n, z => z.m);
 6 
 7             foreach (var g in query)
 8             {
 9                 Console.WriteLine("============");
10                 foreach (var item in g)
11                 {
12                     Console.WriteLine($"{item}");
13                 }
14             }

分组结果

 

posted @ 2021-11-13 10:10  只吃肉不喝酒  阅读(179)  评论(0编辑  收藏  举报