Using LINQ, how can I group this list results by firstThree? My group method is not working.
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);
}
The reason your GroupBy is not working is that you are ignoring its results. It should be like this:
var groups = findOtherZipCodes.GroupBy(x => x.firstThree).ToList();
Change the foreach loop like this to complete the fix:
foreach (var group in groups) {
var firstInGroup = group.First();
Console.WriteLine(firstInGroup.region + " " + group.Key + " " + firstInGroup.zipCode);
Thread.Sleep(500);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With