使用LINQ,如何通过 firstThree 对此列表结果进行分组?我的小组方法无效。
var findOtherZipCodes = (from z in zipCodes
from results in zipFirstThree
where (results.region.ToUpper() == z.City
&& results.state == z.State)
select new ZipCodeFirstThree
{
region = z.City,
state = z.State,
firstThree = z.ZipCode1.ToString().Substring(0, 3),
zipCode = z.ZipCode1.ToString()
}).ToList();
findOtherZipCodes.GroupBy(x => x.firstThree).ToList();
foreach (var item in findOtherZipCodes) {
Console.WriteLine(item.region + " " + item.firstThree + " " + item.zipCode);
Thread.Sleep(500);
}
答案 0 :(得分:3)
GroupBy
无法正常工作的原因是您忽略了其结果。它应该是这样的:
var groups = findOtherZipCodes.GroupBy(x => x.firstThree).ToList();
像这样更改foreach
循环以完成修复:
foreach (var group in groups) {
var firstInGroup = group.First();
Console.WriteLine(firstInGroup.region + " " + group.Key + " " + firstInGroup.zipCode);
Thread.Sleep(500);
}