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 }
分组结果