2014-10-06 2 views
1

LINQ를 사용하여이 목록 결과를 그룹화하려면 어떻게해야합니까? firstThree? 내 그룹 방법이 작동하지 않습니다.LINQ - GROUP BY IEnumerable

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); 


     } 
+2

모두를 전혀 달성되지 않는 코드에서 ToList''에. 이 쿼리를 수행하기 위해이 메서드를 전혀 사용할 필요가 없습니다. – Servy

답변

2

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); 
} 
+0

당신의 솔루션은 원하는 그룹화를 도왔습니다. 대단히 감사합니다. – user2751629