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

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

 

公開日: 2016年10月

2 つのシーケンスを連結します。

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

public static IEnumerable<TSource> Concat<TSource>(
	this IEnumerable<TSource> first,
	IEnumerable<TSource> second
)

パラメーター

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

連結する最初のシーケンス。

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

最初のシーケンスに連結するシーケンス。

戻り値

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

IEnumerable<T> 2 つの入力シーケンスの連結された要素を格納します。

型パラメーター

TSource

入力シーケンスの要素の型。

Exception Condition
ArgumentNullException

first または secondnull です。

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

Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) メソッドとは異なります、 Union<TSource> メソッドのため、 Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) メソッドは、入力シーケンスの元のすべての要素を返します。 Union<TSource> メソッドは、一意の要素のみを返します。

次のコード例では、使用して Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) を 2 つのシーケンスを連結します。

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

static Pet[] GetCats()
{
    Pet[] cats = { new Pet { Name="Barley", Age=8 },
                   new Pet { Name="Boots", Age=4 },
                   new Pet { Name="Whiskers", Age=1 } };
    return cats;
}

static Pet[] GetDogs()
{
    Pet[] dogs = { new Pet { Name="Bounder", Age=3 },
                   new Pet { Name="Snoopy", Age=14 },
                   new Pet { Name="Fido", Age=9 } };
    return dogs;
}

public static void ConcatEx1()
{
    Pet[] cats = GetCats();
    Pet[] dogs = GetDogs();

    IEnumerable<string> query =
        cats.Select(cat => cat.Name).Concat(dogs.Select(dog => dog.Name));

    foreach (string name in query)
    {
        Console.WriteLine(name);
    }
}

// This code produces the following output:
//
// Barley
// Boots
// Whiskers
// Bounder
// Snoopy
// Fido

コレクション、配列などのシーケンスを作成し、適用する 2 つのシーケンスを連結する方法も、 SelectMany<TSource, TResult> id セレクター関数を引数としてメソッドです。 次の例ではこの使用 SelectMany<TSource, TResult>します。

Pet[] cats = GetCats();
Pet[] dogs = GetDogs();

IEnumerable<string> query =
    new[] { cats.Select(cat => cat.Name), dogs.Select(dog => dog.Name) }
    .SelectMany(name => name);

foreach (string name in query)
{
    Console.WriteLine(name);
}

// This code produces the following output:
//
// Barley
// Boots
// Whiskers
// Bounder
// Snoopy
// Fido

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