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

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

 

게시 날짜: 2016년 11월

시퀀스가 비어 있으면 singleton 컬렉션의 지정된 된 값 또는 지정된 된 시퀀스의 요소를 반환 합니다.

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

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

매개 변수

source
Type: System.Collections.Generic.IEnumerable<TSource>

비어 있는 경우 지정된 값을 반환할 시퀀스입니다.

defaultValue
Type: TSource

시퀀스가 비어 있는 경우에 반환할 값입니다.

반환 값

Type: System.Collections.Generic.IEnumerable<TSource>

IEnumerable<T> 포함 된 defaultValue 경우 source 그렇지 않으면 빈 source합니다.

형식 매개 변수

TSource

요소 형식의 source합니다.

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

이 메서드과 결합 된 경우 왼쪽된 우선 외부 조인을 생성 하는 것은 GroupJoin<TOuter, TInner, TKey, TResult>) 메서드.

다음 코드 예제에 사용 하는 방법을 보여 줍니다는 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))
    {
        Console.WriteLine("Name: {0}", pet.Name);
    }

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

    foreach (Pet pet in pets2.DefaultIfEmpty(defaultPet))
    {
        Console.WriteLine("\nName: {0}", pet.Name);
    }
}

/*
 This code produces the following output:

 Name: Barley
 Name: Boots
 Name: Whiskers

 Name: Default Pet
*/

유니버설 Windows 플랫폼
8 이후 사용 가능
.NET Framework
3.5 이후 사용 가능
이식 가능한 클래스 라이브러리
이식 가능한 .NET 플랫폼 에서 지원됨
Silverlight
2.0 이후 사용 가능
Windows Phone Silverlight
7.0 이후 사용 가능
Windows Phone
8.1 이후 사용 가능
맨 위로 이동
표시: