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>
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>
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>
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!