PG日誌スマートフォン用の表示で見るPG日誌2018-10-12C#の配列にForEachメソッドを追加するC#C#の配列にForEachメソッドを直接追加する方法を紹介したいと思います。ForEachメソッドは、Pythonにmap関数とほぼ同じ機能を持ちます。map関数は「map関数は、イテラブルオブジェクトに対しその全ての要素に指定した関数を実行し、結果をシーケンスとして返却します。」という説明で、平たく言うとListとか配列の全ての要素に対し一括で何らかの処理をしますという事です。C#は同じ機能が「List.Foreach(Action)」として存在しますが、配列にはそのような機能がありません。代わりに「Array.Foreach(Action)」というメソッドがありますが、組み込み型(intやdoublde)だと内容に加算等の操作ができません。【補足】ForEachメソッドは操作は途中で中断することが出来ません。最初から最後まで一括操作となります。いった、「条件次第で処理を中止する必要がある」場合は、foreach構文を使用します。*1あくまでmap関数相当の機能を持つためこ、ForEach中でbreakできないがyieldができない、非同期ができない、などと言うのは全くの見当違いと言えます。いえ、for文やforeach文を使えば実現可能ですがいちいち以下のように毎回コードを書くのは面倒です。Array.Foreachに機能的に同様なメソッドが用意されていますが、配列を操作をするために外部クラスを呼び出すのもやや変です。1;}そこで「拡張メソッド」という機能を使用し配列にForEachメソッドを追加します。拡張メソッドで配列にForeachを追加するArrayExtensionクラスを作成して以下の通り、Foreachメソッドを追加します。item);使い方は以下の通りです。★★★戻り値を指定する版でも値が反映される!}これで、配列が構造体や組み込み型のintやdoubleでも変更が反映されるようになりました。*1:メソッドの名前が悪いですね。»Profile受託ソフト会社員でWin系業務屋。趣味でCocos2d-x/C++を触っています。etc...主に受託・開発ネタ、Windowsの事、Srellaris、ゲーム制作の進捗の事を喋ります。Core3.xとUnityでAES暗号化を利用するC#の標準機能でデータを圧縮・展開するC#で属性を利用して処理に制約の説明を追加するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。