> 백엔드 개발 > C++ > LINQ는 그리드 표시를 위해 어떻게 데이터를 넓은 형식에서 긴 형식으로 효율적으로 전환할 수 있습니까?

LINQ는 그리드 표시를 위해 어떻게 데이터를 넓은 형식에서 긴 형식으로 효율적으로 전환할 수 있습니까?

Susan Sarandon
풀어 주다: 2025-01-05 16:14:41
원래의
375명이 탐색했습니다.

How Can LINQ Efficiently Pivot Data from a Wide to a Tall Format for Grid Display?

LINQ를 사용하여 데이터 피벗

데이터 과학에서 피벗은 데이터를 와이드 형식에서 Tall 형식으로 또는 그 반대로 변환합니다. Enum 및 User 개체가 포함된 항목이 포함된 데이터세트가 있고 그리드 표시를 위해 이를 평면화해야 한다고 가정해 보겠습니다. 간단한 방법에는 중첩된 foreach 루프가 포함되지만 이 접근 방식은 컬렉션 크기 변경으로 인해 오류가 발생할 수 있습니다.

LINQ Pivot 접근 방식

LINQ는 더 깔끔하고 효율적인 방법을 제공합니다. 데이터를 피벗하려면:

  1. 그룹화 및 선택: Enum 값으로 데이터를 선택하고 각 그룹의 사용자 이름을 선택합니다.
var grps = from d in data
           group d by d.Foo
           into grp
           select new
           {
               Foo = grp.Key,
               Bars = grp.Select(d2 => d2.Bar).ToArray()
           };
로그인 후 복사
  1. 행 수 결정: 행의 길이를 기준으로 최대 행 수를 계산합니다. 각 그룹의 바 array.
int rows = grps.Max(grp => grp.Bars.Length);
로그인 후 복사
  1. 출력 열 헤더: Enum 값을 열 헤더로 인쇄합니다.
foreach (var grp in grps) {
    Console.Write(grp.Foo + "\t");
}
로그인 후 복사
  1. 출력 데이터: 행을 반복하고 해당 사용자 이름을 인쇄합니다. 또는 누락된 값의 경우 null입니다.
for (int i = 0; i < rows; i++) {
    foreach (var grp in grps) {
        Console.Write((i < grp.Bars.Length ? grp.Bars[i] : null) + "\t");
    }
    Console.WriteLine();
}
로그인 후 복사

이 코드는 데이터 피벗을 우아하게 수행하여 복잡한 데이터 세트를 그리드 형식으로 평면화하기 위한 깔끔하고 효율적인 솔루션을 제공합니다.

위 내용은 LINQ는 그리드 표시를 위해 어떻게 데이터를 넓은 형식에서 긴 형식으로 효율적으로 전환할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿