Concat(TSource) Metodo (IEnumerable(TSource), IEnumerable(TSource))
Comprimi il sommario
Espandi il sommario
Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Enumerable.Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

 

Concatena due sequenze.

Spazio dei nomi:   System.Linq
Assembly:  System.Core (in System.Core.dll)

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

Parametri

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

Prima sequenza da concatenare.

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

Sequenza da concatenare alla prima sequenza.

Valore restituito

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

Un IEnumerable<T> che contiene gli elementi concatenati delle due sequenze di input.

Parametri di tipo

TSource

Tipo degli elementi delle sequenze di input.

Exception Condition
ArgumentNullException

first o second è null.

Questo metodo viene implementato tramite esecuzione posticipata. Il valore restituito immediato è un oggetto che archivia tutte le informazioni necessarie per eseguire l'azione. La query rappresentata da questo metodo non viene eseguita finché l'oggetto viene enumerata chiamando il relativo GetEnumerator metodo direttamente o tramite foreach in Visual C# o For Each in Visual Basic.

Il Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) metodo differisce di Union<TSource> metodo perché il Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) metodo restituisce tutti gli elementi originali nelle sequenze di input. Il Union<TSource> restituisce solo gli elementi univoci.

Esempio di codice seguente viene illustrato come utilizzare Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) per concatenare due sequenze.

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

Un modo alternativo di concatenare due sequenze consiste nel creare una raccolta, ad esempio una matrice di sequenze e quindi applicare il SelectMany<TSource, TResult> (metodo), passando la funzione del selettore di identità. Nell'esempio seguente viene illustrato l'utilizzo di 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

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 3.5
Portable Class Library
Supportato in: portable .NET platforms
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra:
© 2016 Microsoft