가 원하는 결과
그것의 핵심을 생성하는 예입니다 아래
내 샘플 데이터입니다 이 :
- 그룹 각각
MonthX
속성 내부 그룹 내의 오브젝트의 개수로 설정되는 결과를 만드는 그들의 Color
특성
- 프로세스 각 그룹별로 자신
Code
특성
- 그룹 각 그룹의 요소에 의해 요소 (코드에 의해 상품 색깔로) 주어진 달 식별자를 가진
질문에 제공된 5 개월 값을 구체적으로 처리합니다. 원하는 모든 월 값을 결과 개체의 자체 속성으로 나눌 수 있습니다. 다른 값이 필요한 경우 월 색인 사전 대 사전 계산
public enum Number
{
One = 11111,
Two = 22222,
Three = 33333,
Four = 44444,
Five = 55555
}
public class Data
{
public Number Code { get; set; }
public string CodeName { get { return Enum.GetName(typeof(Number), Code); } }
public ConsoleColor Color { get; set; }
public int Month { get; set; }
}
public class Result
{
public Number Code { get; set; }
public string CodeName { get { return Enum.GetName(typeof(Number), Code); } }
public ConsoleColor Color { get; set; }
public int Month1 { get; set; }
public int Month2 { get; set; }
public int Month3 { get; set; }
public int Month4 { get; set; }
public int Month5 { get; set; }
}
class Program
{
static void Main(string[] args)
{
var items = new Data[]
{
new Data{Code = Number.One, Color = ConsoleColor.Red, Month = 1},
new Data{Code = Number.One, Color = ConsoleColor.Red, Month = 1},
new Data{Code = Number.One, Color = ConsoleColor.Red, Month = 2},
new Data{Code = Number.Two, Color = ConsoleColor.Green, Month = 2},
new Data{Code = Number.Three, Color = ConsoleColor.Yellow, Month = 3},
new Data{Code = Number.Four, Color = ConsoleColor.Blue, Month = 4},
new Data{Code = Number.Four, Color = ConsoleColor.Blue, Month = 4},
new Data{Code = Number.Five, Color = ConsoleColor.White, Month = 5},
};
var results = items.GroupBy(x => x.Code).Select(
x => x.GroupBy(y => y.Color)
.Select(z => new Result
{
Code = x.Key,
Color = z.Key,
Month1 = z.Count(q => q.Month == 1),
Month2 = z.Count(q => q.Month == 2),
Month3 = z.Count(q => q.Month == 3),
Month4 = z.Count(q => q.Month == 4),
Month5 = z.Count(q => q.Month == 5),
}).ToList());
var resultList = results.ToList();
}
}
그래서 지금까지 어떤 시도를 했습니까? – Deeko
LINQ + 피벗을 찾고 은색 총알이 없음을 확인하십시오. 이것은 전에 여러 가지 방법으로 질문되었습니다. –