C# で複製されたサブ配列を効率的に作成する
配列を操作する場合、多くの場合、既存の配列から特定の範囲の要素を含むサブ配列を作成する必要があります。これは要素を手動でループしてコピーすることで実現できますが、より効率的でクリーンな方法があります。
複製されたサブ配列を作成するには、拡張メソッドを使用できます。その方法は次のとおりです:
<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>
使用方法:
<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>
要素が複雑なオブジェクトであるクローン化されたサブ配列の場合、シリアル化を使用してディープ コピーを行うことができます。
<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>
このメソッドでは、オブジェクトがシリアル化可能である必要があります。
以上がC# でクローンされたサブ配列を効率的に作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。