この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

Enumerable.DefaultIfEmpty<TSource> メソッド (IEnumerable<TSource>)

 

公開日: 2016年10月

シーケンスが空の場合は、シングルトン コレクションに指定されたシーケンスまたは型パラメーターの既定値の要素を返します。

名前空間:   System.Linq
アセンブリ:  System.Core (System.Core.dll 内)

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

パラメーター

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

シーケンスが空の場合に、既定値を返すシーケンス。

戻り値

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

IEnumerable<T> の既定値を格納しているオブジェクト、 TSource 入力 source 空の場合、それ以外の場合は、 sourceです。

型パラメーター

TSource

要素の型 sourceします。

Exception Condition
ArgumentNullException

sourcenull です。

このメソッドは遅延実行を使用して実装されます。 すぐに、値は、操作を実行するために必要なすべての情報を格納するオブジェクトを返します。 オブジェクトのいずれかを呼び出すことが列挙されるまで、このメソッドで表されるクエリは実行されません、 GetEnumerator メソッドを使用して直接または foreach で Visual C# または For Each で Visual Basicします。

参照および null 許容型の既定値は nullです。

このメソッドと結合されているときに、左外部結合の生成に使用できます、 GroupJoin<TOuter, TInner, TKey, TResult>) メソッドです。

次のコード例を使用する方法を示します DefaultIfEmpty<TSource>(IEnumerable<TSource>) にソース シーケンスが空である場合に、既定値を指定します。

この例では、空のシーケンスを使用します。

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

public static void DefaultIfEmptyEx1()
{
    List<Pet> pets =
        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 pets.DefaultIfEmpty())
    {
        Console.WriteLine(pet.Name);
    }
}

/*
 This code produces the following output:

 Barley
 Boots
 Whiskers
*/

この例では、空のシーケンスを使用します。

List<int> numbers = new List<int>();

foreach (int number in numbers.DefaultIfEmpty())
{
    Console.WriteLine(number);
}

/*
 This code produces the following output:

 0
*/

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
3.5 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
Windows Phone
8.1 以降で使用可能
トップに戻る
表示: