문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

Enumerable.DefaultIfEmpty<TSource> 메서드 (IEnumerable<TSource>, TSource)

지정된 시퀀스의 요소를 반환하거나, 시퀀스가 비어 있으면 singleton 컬렉션의 지정된 값을 반환합니다.

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

public static IEnumerable<TSource> DefaultIfEmpty<TSource>(
	this IEnumerable<TSource> source,
	TSource defaultValue
)

형식 매개 변수

TSource

source 요소의 형식입니다.

매개 변수

source
형식: System.Collections.Generic.IEnumerable<TSource>
비어 있는 경우 지정된 값을 반환할 시퀀스입니다.
defaultValue
형식: TSource
시퀀스가 비어 있는 경우에 반환할 값입니다.

반환 값

형식: System.Collections.Generic.IEnumerable<TSource>
source가 비어 있으면 defaultValue가 들어 있는 IEnumerable<T>이고, 그렇지 않으면 source입니다.

사용 정보

Visual Basic 및 C#에서는 이 메서드를 IEnumerable<TSource> 형식의 모든 개체에서 인스턴스 메서드로 호출할 수 있습니다. 인스턴스 메서드 구문을 사용하여 이 메서드를 호출할 경우에는 첫 번째 매개 변수를 생략합니다.

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

이 메서드와 GroupJoin) 메서드를 함께 사용하여 왼쪽 우선 외부 조인을 만들 수 있습니다.

다음 코드 예제에서는 DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) 메서드를 사용하여 기본값을 지정하는 방법을 보여 줍니다. 첫 번째 시퀀스는 비어 있지 않고 두 번째 시퀀스는 비어 있습니다.


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

      public static void DefaultIfEmptyEx2()
      {
         Pet defaultPet = new Pet { Name = "Default Pet", Age = 0 };

         List<Pet> pets1 =
             new List<Pet>{ new Pet { Name="Barley", Age=8 },
                                new Pet { Name="Boots", Age=4 },
                                new Pet { Name="Whiskers", Age=1 } };

         foreach (Pet pet in pets1.DefaultIfEmpty(defaultPet))
         {
            outputBlock.Text += String.Format("Name: {0}", pet.Name) + "\n";
         }

         List<Pet> pets2 = new List<Pet>();

         foreach (Pet pet in pets2.DefaultIfEmpty(defaultPet))
         {
            outputBlock.Text += String.Format("\nName: {0}", pet.Name) + "\n";
         }
      }

      /*
       This code produces the following output:

       Name: Barley
       Name: Boots
       Name: Whiskers

       Name: Default Pet
      */



Silverlight

5, 4, 3에서 지원

Windows Phone용 Silverlight

Windows Phone OS 7.1, Windows Phone OS 7.0에서 지원

XNA Framework

Xbox 360, Windows Phone OS 7.0에서 지원

Silverlight에서 지원되는 운영 체제 및 브라우저에 대한 자세한 내용은 지원되는 운영 체제 및 브라우저을 참조하십시오.

커뮤니티 추가 항목

추가
표시: