내보내기(0) 인쇄
모두 확장
이 문서는 기계로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본

Enumerable.OrderBy<TSource, TKey> 메서드 (IEnumerable<TSource>, Func<TSource, TKey>)

시퀀스의 요소를 키에 따라 오름차순으로 정렬합니다.

네임스페이스:  System.Linq
어셈블리:  System.Core(System.Core.dll)

public static IOrderedEnumerable<TSource> OrderBy<TSource, TKey>(
	this IEnumerable<TSource> source,
	Func<TSource, TKey> keySelector
)

형식 매개 변수

TSource

source 요소의 형식입니다.

TKey

keySelector에서 반환하는 키의 형식입니다.

매개 변수

source
형식: System.Collections.Generic.IEnumerable<TSource>
정렬할 값의 시퀀스입니다.
keySelector
형식: System.Func<TSource, TKey>
요소에서 키를 추출하는 함수입니다.

반환 값

형식: System.Linq.IOrderedEnumerable<TSource>
요소가 키에 따라 정렬된 IOrderedEnumerable<TElement>입니다.

사용 정보

Visual Basic 및 C#에서는 이 메서드를 IEnumerable<TSource> 형식의 모든 개체에서 인스턴스 메서드로 호출할 수 있습니다. 인스턴스 메서드 구문을 사용하여 이 메서드를 호출할 경우에는 첫 번째 매개 변수를 생략합니다. 자세한 내용은 확장 메서드(Visual Basic) 또는 확장 메서드(C# 프로그래밍 가이드)를 참조하십시오.

예외조건
ArgumentNullException

source 또는 keySelectornull인 경우

이 메서드는 지연된 실행을 사용하여 구현됩니다. 해당 작업을 수행하는 데 필요한 모든 정보가 저장된 개체가 즉시 반환됩니다. 이 메서드에서 나타내는 쿼리는 해당 GetEnumerator 메서드를 직접 호출하거나, foreach(Visual C#의 경우) 또는 For Each(Visual Basic의 경우)를 사용하여 개체를 열거할 때까지 실행되지 않습니다.

요소 자체의 값에 따라 시퀀스를 정렬하려면 keySelector에 항등 함수(Visual C#의 x => x 또는 Visual Basic의 Function(x) x)를 지정합니다.

이 메서드의 반환 형식인 IOrderedEnumerable<TElement> 형식을 확장하는 두 가지 메서드가 정의됩니다. ThenByThenByDescending이라는 이름의 이 두 메서드로, 추가 분류 기준을 지정하여 시퀀스를 분류할 수 있습니다. ThenByThenByDescendingIOrderedEnumerable<TElement>을 반환하며, 이는 ThenBy 또는 ThenByDescending에 대한 연속 호출 횟수에 제한이 없음을 의미합니다.

참고참고

IOrderedEnumerable<TElement> IEnumerable<T>에서 상속되므로 OrderBy, OrderByDescending, ThenBy 또는 ThenByDescending을 호출한 결과에 대해 OrderBy 또는 OrderByDescending을 호출할 수 있습니다. 이렇게 하면 이전에 정한 순서를 무시하는 새 기본 순서가 지정됩니다.

이 메서드는 기본 비교자인 Default를 사용하여 키를 비교합니다.

이 메서드는 안정된 정렬을 수행합니다. 즉, 두 요소의 키가 같은 경우 이 두 요소의 순서가 유지됩니다. 이와 반대로 불안정한 정렬을 수행하면 동일한 키가 들어 있는 요소의 순서가 유지되지 않습니다.

쿼리 식 구문에서 orderby(Visual C#의 경우) 또는 Order By(Visual Basic의 경우) 절은 OrderBy 호출로 변환됩니다.

다음 코드 예제에서는 OrderBy<TSource, TKey>(IEnumerable<TSource>, Func<TSource, TKey>)를 사용하여 시퀀스의 요소를 정렬하는 방법을 보여 줍니다.


            class Pet
            {
                public string Name { get; set; }
                public int Age { get; set; }
            }

            public static void OrderByEx1()
            {
                Pet[] pets = { new Pet { Name="Barley", Age=8 },
                               new Pet { Name="Boots", Age=4 },
                               new Pet { Name="Whiskers", Age=1 } };

                IEnumerable<Pet> query = pets.OrderBy(pet => pet.Age);

                foreach (Pet pet in query)
                {
                    Console.WriteLine("{0} - {1}", pet.Name, pet.Age);
                }
            }

            /*
             This code produces the following output:

             Whiskers - 1
             Boots - 4
             Barley - 8
            */



.NET Framework

4.5.2, 4.5.1, 4.5, 4, 3.5에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

이식 가능한 클래스 라이브러리

이식 가능한 클래스 라이브러리에서 지원

Windows 스토어 앱용 .NET

Windows 8에서 지원

Windows Phone 앱용 .NET

Windows Phone 8, Silverlight 8.1에서 지원

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(서버 코어 역할은 지원되지 않음), Windows Server 2008 R2(서버 코어 역할은 SP1 이상에서 지원, Itanium은 지원되지 않음)

.NET Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft