質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

0回答

1813閲覧

C#で配列を上書きする方法

yrema

総合スコア286

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

1クリップ

投稿2021/02/21 22:56

下のary1をary2で上書きし結果が
{ 4, 5, 3 }
となるようにしたいです。

c#

1int?[] ary1 = new int?[] { 1, 2, 3 }; 2int?[] ary2 = new int?[] { 4, 5, null };

ループさせるしか方法は無いでしょうか?
実際は四次元配列で1000100010*100くらいの配列を扱うので負荷がかかり
ループさせずに上書きする方法でパフォーマンスを向上させるのが目的です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2021/02/21 23:36 編集

> ループさせるしか方法は無いでしょうか? はい。その前提条件が動かせないならそうなります。アルゴリズムを見直して前提条件を変えてください。
m.ts10806

2021/02/21 23:51

「はじめからそういう配列を作る」は難しいのでしょうか。確固たる規則性がない限りは負荷関係なく地道にやるしかないです
退会済みユーザー

退会済みユーザー

2021/02/22 00:13

nulll判定が必要ならループさせるしかないでしょうね。 単純なコピーであれば、Buffer.MemoryCopyやUnsafe.CopyBlockUnalignedの採用の余地があります。
Y...M

2021/02/22 05:12

>Zuishinさん 本ユーザーは、私とは無関係です。
hihijiji

2021/02/22 10:07

null許容型はメモリ効率が悪いからint型にしてnullの代わりに マイナスを使ってない場合は、-1 使っている場合はint.MinValue とかを使うとだいぶマシになるはず。
yrema

2021/02/22 15:45

>hihijijiさん なるほど、少しでも効率的にできるご回答ありがたいです。 ベストアンサーにしたいので回答欄に書いていただけますか?
hihijiji

2021/02/23 01:19

潜伏期間中なので自己解決でお願いしますm(_ _)m
hihijiji

2021/02/23 04:38

それと、どのぐらい改善されたかを書いてくれると後進に有益な情報になります。 私も知りたいですし
yrema

2021/02/23 09:55

>hihijijiさん わかりました。明らかに改善された結果が出たら書きますね。
Zuishin

2021/02/23 23:10 編集

並列処理が可能なので、条件によっては GPU を使って速くできます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問