(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
1 von 1 fanden dies hilfreich - Dieses Thema bewerten.

Enumerable.Concat<TSource>-Methode

Verkettet zwei Sequenzen.

Namespace:  System.Linq
Assembly:  System.Core (in System.Core.dll)
public static IEnumerable<TSource> Concat<TSource>(
	this IEnumerable<TSource> first,
	IEnumerable<TSource> second
)

Typparameter

TSource

Der Typ der Elemente der Eingabesequenzen.

Parameter

first
Typ: System.Collections.Generic.IEnumerable<TSource>
Die erste zu verkettende Sequenz.
second
Typ: System.Collections.Generic.IEnumerable<TSource>
Die Sequenz, die mit der ersten Sequenz verkettet werden soll.

Rückgabewert

Typ: System.Collections.Generic.IEnumerable<TSource>
Ein IEnumerable<T>, das die verketteten Elemente der beiden Eingabesequenzen enthält.

Hinweis zur Verwendung

In Visual Basic und C# können Sie diese Methode als Instanzenmethode für ein beliebiges Objekt vom Typ IEnumerable<TSource> aufrufen. Bei Verwendung der Syntax für Instanzenmethoden lassen Sie den ersten Parameter aus. Weitere Informationen finden Sie unter Erweiterungsmethoden (Visual Basic) oder Erweiterungsmethoden (C#-Programmierhandbuch).
AusnahmeBedingung
ArgumentNullException

first oder second ist null.

Diese Methode wird mit verzögerter Ausführung implementiert. Der Wert der sofortigen Rückgabe ist ein Objekt, in dem alle zum Ausführen der Aktion erforderlichen Informationen gespeichert werden. Die von dieser Methode dargestellte Abfrage wird erst ausgeführt, wenn das Objekt entweder durch den direkten Aufruf der zugehörigen GetEnumerator-Methode oder mithilfe von foreach in Visual C# oder For Each in Visual Basic aufgelistet wird.

Die Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)-Methode unterscheidet sich von der Union-Methode, weil die Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)-Methode alle ursprünglichen Elemente in den Eingabesequenzen zurückgibt. Die Union-Methode gibt nur eindeutige Elemente zurück.

Im folgenden Codebeispiel wird veranschaulicht, wie zwei Sequenzen mithilfe von Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) verkettet werden.


            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



Eine alternative Möglichkeit zum Verketten zweier Sequenzen ist das Erstellen einer Auflistung, z. B. eines Arrays, von Sequenzen und das anschließende Anwenden der SelectMany-Methode, an die die Identitätsauswahlfunktion übergeben wird. Im folgenden Beispiel wird diese Verwendung von SelectMany veranschaulicht.


                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



.NET Framework

Unterstützt in: 4.5, 4, 3.5

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.