ホームページ > バックエンド開発 > C++ > C# でクローンされたサブ配列を効率的に作成するにはどうすればよいですか?

C# でクローンされたサブ配列を効率的に作成するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-18 20:43:39
オリジナル
149 人が閲覧しました

How to Efficiently Create Cloned Subarrays in C#?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート