2017-01-25 8 views
1

브랜치 목록이 있습니다. 각 브랜치에는 N 명의 직원이 있고, 분기 개체와 NumberEmployees 속성이 있습니다. 이제이 목록을 반복하여 블록 당 직원 수를 보내야합니다. , 나는 다음 표와 함께 더 잘 설명한다 : 나는 직원 수에 의한 목록을 주문한다.목록을 C# 블록으로 나눕니다.

+---------+-----------+ 
| Branch | Employees | 
+---------+-----------+ 
|MEXICO |  800 | 
|USA  |  700 | 
|INDIA |  500 | 
|CHINA |  400 | 
|AUSTRALIA|  300 | 
+---------+-----------+ 

지금 목록을 반복하지만 블록으로이 같은 직원 수를 나눈 :

+-----------+------------+-------------+------------+ 
| Branch | FirstGroup | SecondGroup | ThirdGroup | 
+-----------+------------+-------------+------------+ 
| Mexico |  267 |   267 |  267 | 
| USA  |  234 |   234 |  234 | 
| India  |  167 |   167 |  167 | 
| China  |  134 |   134 |  134 | 
| Australia |  100 |   100 |  100 | 
+-----------+------------+-------------+------------+ 

나는 것입니다 결과를해야 목록 생각 결국 :

+-----------+-----------+ 
| Branch | Employees | 
+-----------+-----------+ 
| Mexico |  267 | 
| USA  |  234 | 
| India  |  167 | 
| China  |  134 | 
| Australia |  100 | 
| Mexico |  267 | 
| USA  |  234 | 
| India  |  167 | 
| China  |  134 | 
| Australia |  100 | 
| Mexico |  267 | 
| USA  |  234 | 
| India  |  167 | 
| China  |  134 | 
| Australia |  100 | 
+-----------+-----------+ 

지금까지 목록을 주문할 수만 있습니다.

double TotalEmployees = ListBranch.Sum(item => item.EmployeeNumber); 
double blockSize = TotalEmployees/ListBranch.Count(); 
double sizeQuery = Math.Ceiling(blockSize); 

       foreach (Branch branch in ListBranch.OrderByDescending(f => f. EmployeeNumber)) 
{ 

    //to do 
} 

난 당신이가 트릭을 할 수있는 나에게

+0

각 블록에 몇 개가 들어가는 지 결정하는 논리가 정확히 무엇입니까? – BradleyDotNET

답변

0

을 줄 수있는 단서를 여러분의 소중한 도움을 주셔서 감사합니다 당신

List<BranchEmployee> be = new List<BranchEmployee>(); 
be.Add(new BranchEmployee() { Branch = "MEXICO", Employee = 800 }); 
be.Add(new BranchEmployee() { Branch = "USA", Employee = 700 }); 
be.Add(new BranchEmployee() { Branch = "INDIA", Employee = 500 }); 
be.Add(new BranchEmployee() { Branch = "CHINA", Employee = 400 }); 
be.Add(new BranchEmployee() { Branch = "AUSTRALIA", Employee = 300 }); 
List<BranchEmployee> ExpectedBE = new List<BranchEmployee>(); 
for(int i = 0; i <= 2; i++) 
{ 
    foreach(BranchEmployee smbe in be) 
    { 
     ExpectedBE.Add(new BranchEmployee() 
     { 
      Branch = smbe.Branch, 
      Employee = smbe.Employee/3 
     }); 
    } 
} 

내가 볼 것은 모든 그룹이 직원의 동일한 수를 가지고 있다는 것입니다 그 총 직원 수를 3으로 나눈 값입니다.

표시된 방식으로 데이터를 보려면이 클래스를 만들었습니다.

public class BranchEmployee 
{ 
    public string Branch { get; set; } 
    public int Employee { get; set; } 
} 
+0

도움을 주셔서 감사합니다. 같은 목록 (예 : 초기 목록)에서 수행하는 방법에 대한 예를 들어 주시겠습니까? 그리고 나는 for의 목적을 이해하지 못합니다. –