Heim > Backend-Entwicklung > C++ > Wie kann man geklonte Subarrays in C# effizient erstellen?

Wie kann man geklonte Subarrays in C# effizient erstellen?

Mary-Kate Olsen
Freigeben: 2025-01-18 20:43:39
Original
149 Leute haben es durchsucht

How to Efficiently Create Cloned Subarrays in C#?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage