Maison > développement back-end > C++ > Comment créer efficacement des sous-tableaux clonés en C# ?

Comment créer efficacement des sous-tableaux clonés en C# ?

Mary-Kate Olsen
Libérer: 2025-01-18 20:43:39
original
149 Les gens l'ont consulté

How to Efficiently Create Cloned Subarrays in C#?

Créez efficacement des sous-tableaux clonés en C#

Lorsque vous travaillez avec des tableaux, il est souvent nécessaire de créer un sous-tableau contenant une plage spécifique d'éléments à partir d'un tableau existant. Bien que cela puisse être réalisé en bouclant et en copiant manuellement des éléments, il existe des méthodes plus efficaces et plus propres.

Pour créer des sous-tableaux clonés, des méthodes d'extension peuvent être utilisées. Voici comment procéder :

<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>
Copier après la connexion

Comment l'utiliser :

<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>
Copier après la connexion

Pour les sous-tableaux clonés dont les éléments sont des objets complexes, vous pouvez utiliser la sérialisation pour la copie profonde :

<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>
Copier après la connexion

Cette méthode nécessite que l'objet soit sérialisable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal