다음을 통해 공유


방법: 그룹화 작업에서 하위 쿼리 수행(C# 프로그래밍 가이드)

이 항목에서는 소스 데이터를 그룹으로 순서 정렬하는 쿼리를 만들어 각 그룹에 대한 하위 쿼리를 개별적으로 수행하는 두 가지 방법에 대해 설명합니다.각 예제에서 기본적인 방법은 newGroup이라는 연속 문자를 사용하여 newGroup에 대한 새로운 하위 쿼리를 생성하여 소스 개체를 그룹화하는 것입니다.이 하위 쿼리는 외부 쿼리를 사용하여 만든 각각의 새로운 그룹에 대해 실행됩니다.이 특정 예제에서 마지막 출력은 그룹이 아니라 익명 형식의 기본 시퀀스입니다.

그룹화하는 방법에 대한 자세한 내용은 group 절(C# 참조)을 참조하십시오.

연속에 대한 자세한 내용은 into(C# 참조)를 참조하십시오.다음 예제에서는 메모리 내 데이터 구조를 데이터 소스로 사용하지만 모든 종류의 LINQ 데이터 소스에 적용되는 동일한 원칙을 사용합니다.

예제

public void QueryMax()
{
    var queryGroupMax =
        from student in students
        group student by student.Year into studentGroup
        select new
        {
            Level = studentGroup.Key,
            HighestScore =
            (from student2 in studentGroup
             select student2.ExamScores.Average()).Max()
        };

    int count = queryGroupMax.Count();
    Console.WriteLine("Number of groups = {0}", count);

    foreach (var item in queryGroupMax)
    {
        Console.WriteLine("  {0} Highest Score={1}", item.Level, item.HighestScore);
    }
}

코드 컴파일

이 예제에는 방법: 개체 컬렉션 쿼리(C# 프로그래밍 가이드)에서 샘플 응용 프로그램에 정의된 개체에 대한 참조가 포함되어 있습니다.이 메서드를 컴파일하고 실행하려면 해당 응용 프로그램의 StudentClass 클래스에 이 메서드를 붙여넣고 이 메서드에 대한 Main 메서드의 호출을 추가합니다.

사용자 고유의 응용 프로그램에 이 메서드를 적용하는 경우 LINQ에서는 .NET Framework 버전 3.5를 필요로 하며 프로젝트에는 System.Core.dll에 대한 참조와 System.Linq에 대한 using 지시문이 포함되어야 합니다.LINQ to SQL, LINQ to XML 및 LINQ to DataSet 형식에는 추가 usings 및 참조가 필요합니다.자세한 내용은 방법: LINQ 프로젝트 만들기를 참조하십시오.

참고 항목

개념

LINQ 쿼리 식(C# 프로그래밍 가이드)