Effiziente Verbindungsmethode des C#-Arrays
Das Verketten von Arrays ist eine häufige Aufgabe in der Programmierung, bei der die Elemente von zwei oder mehr Arrays zu einem neuen Array kombiniert werden. In C# bietet die Concat
-Methode eine praktische Möglichkeit, Arrays zu verketten, ist jedoch möglicherweise nicht die effizienteste Lösung für große Arrays.
Eine alternative Methode
Um Arrays effizienter zu verketten, besteht eine Alternative darin, die Elemente jedes Arrays manuell in ein neues Array mit geeigneter Größe zu kopieren:
<code class="language-csharp">var z = new int[x.Length + y.Length]; x.CopyTo(z, 0); y.CopyTo(z, x.Length);</code>
Diese Methode erstellt ein neues Array mit dem Namen z
mit einer Größe, die der Summe der Längen von x
und y
entspricht. Kopieren Sie dann die Elemente von x
beginnend mit Index 0 nach z
und dann die Elemente von y
beginnend mit Index x.Length
(d. h. der Position nach dem letzten Element von x
) nach z
Mitte.
Anwendungsbeispiel
Betrachten Sie das folgende Beispiel:
<code class="language-csharp">int[] x = { 1, 2, 3 }; int[] y = { 4, 5 }; var z = new int[x.Length + y.Length]; x.CopyTo(z, 0); y.CopyTo(z, x.Length); Debug.Assert(z.SequenceEqual(new int[] { 1, 2, 3, 4, 5 }));</code>
Dieser Code erstellt ein neues Array x
, das alle Elemente von y
und z
enthält, und die Behauptung überprüft, ob die Elemente korrekt verbunden sind.
Leistungsvergleich
Benchmarks zeigen, dass diese Alternative für große Arrays effizienter ist als der Concat
Ansatz. Mit zunehmender Arraygröße wird der Leistungsunterschied deutlicher.
Fazit
Während die Concat
-Methode eine übersichtliche Möglichkeit zur Verkettung von Arrays bietet, ist sie möglicherweise nicht die effizienteste Lösung für große Arrays. Für solche Szenarien bietet das manuelle Kopieren von Arrays eine schnellere und effizientere Alternative.
Das obige ist der detaillierte Inhalt vonWas ist der effizienteste Weg, Arrays in C# zu verketten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!