Erstellen Sie effizient geklonte Subarrays in C#
Bei der Arbeit mit Arrays ist es oft notwendig, ein Subarray zu erstellen, das einen bestimmten Bereich von Elementen aus einem vorhandenen Array enthält. Dies kann zwar durch manuelles Schleifen und Kopieren von Elementen erreicht werden, es gibt jedoch effizientere und sauberere Methoden.
Um geklonte Subarrays zu erstellen, können Erweiterungsmethoden verwendet werden. So geht's:
<code class="language-csharp">public static T[] SubArray<T>(this T[] data, int index, int length) { T[] result = new T[length]; Array.Copy(data, index, result, 0, length); return result; }</code>
So verwenden Sie es:
<code class="language-csharp">int[] data = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int[] sub = data.SubArray(3, 4); // 包含 {3, 4, 5, 6}</code>
Für geklonte Subarrays, deren Elemente komplexe Objekte sind, können Sie Serialisierung für tiefes Kopieren verwenden:
<code class="language-csharp">public static T[] SubArrayDeepClone<T>(this T[] data, int index, int length) { T[] arrCopy = new T[length]; Array.Copy(data, index, arrCopy, 0, length); using (MemoryStream ms = new MemoryStream()) { var bf = new BinaryFormatter(); bf.Serialize(ms, arrCopy); ms.Position = 0; return (T[])bf.Deserialize(ms); } }</code>
Diese Methode erfordert, dass das Objekt serialisierbar ist.
Das obige ist der detaillierte Inhalt vonWie kann man geklonte Subarrays in C# effizient erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!