配列

[Javascript] 配列から特定の要素を取り出す(splice, findIndex, pop, shift)

Javascript での配列操作 Javascriptで配列を操作する機会は多々あるかと思いますが、特定の要素を取り出す という操作の仕方をまとめます。任意の配列について、特定の要素を取り出すことで破壊的な変更を加えます。 先頭、末尾の要素を取り出す 特定の要素が先頭や末尾の要素であれば簡単です。 先頭の要素を取り出すには、shift 関数を使います。この関数は配列の先頭要素を取り除き、それを返 […]

[Javascript] 多次元配列を展開(flatten)して1次元配列に変換する方法

[Javascript] 多次元配列を展開(flatten)して1次元配列に変換する方法 Javascript で flatten Javascriptにおいて、多次元配列を1次元配列に展開する、いわゆる flatten という処理をしたいのでその方法を調べました。 // これを const array2d = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; // こう変 […]

[Linq] 条件に一致する要素数を数える方法

Linqで条件に一致する要素数を数える方法 Linqを使って、コレクションの中から条件に合うものの数を数える際に、今まではWhere()で条件を絞ってから、Count()をしていました。ですがCount()自体の引数で条件を指定できるのでそちらを利用した方が簡潔だと知りました。 例えば 1~100 の中の偶数の個数を数える処理は次のように書けます。 var count = Enumerable.R […]

C#

bool配列 と byte配列 の変換方法

bool と byte の変換方法 bool型配列からbyte型やbyte型配列、あるいはその逆を求める方法をまとめました。標準的な方法ではうまくやれないようなので、独自に拡張メソッドで定義することにします。 bool型配列 を byte型配列 に変換 bool型配列 を byte型配列 に変換するメソッドです。 まずbyte型変数を0で初期化しておきます。最大8ビット分ループして、最上位ビットか […]

[JS] 配列の操作まとめ(要素の追加、削除他)

Javascriptの配列操作方法まとめ Javascriptでの配列に対する操作方法をまとめます。 配列の生成 配列を生成するには Arrayコンストラクタ もしくは 配列リテラル を使います。 コンストラクタによる生成 new Array(n) で要素数nの配列を生成できます。 new Array(item1, item2, …) で配列の生成と同時に値を初期化します。引数なしの場 […]

C#

[C#][VB] ファイルをByte型配列で読み書きする方法

バイナリファイルのByte型配列での読み書き File.ReadAllBytes を使えば、バイナリファイルをByte型配列に読み込むことができます。 逆に、File.WriteAllBytes を使うことでByte型配列の内容をファイルに書き出すことができます。指定したパスのファイルが存在しない場合、新規にファイルが作成されます。ファイルが存在すれば、ファイルを上書きします。 C# // ファイ […]

[C#][VB] LINQでコレクションをチャンク(N個ずつ)に分割

LINQでチャンク チャンクとは、大きな塊、ぶつ切り、大量、などの意味を持つ英単語です。つまりひとまとまりのデータの塊を指します。 例えば配列などのコレクションに対して、N個ずつの要素のチャンクまとめて処理を行いたい場合があります。100個の要素を持つコレクションを2個の要素をもつチャンク50個に分割するイメージです。これを拡張メソッドとして用意しておけば便利なはずです。 拡張メソッドやイテレータ […]

C#

[C#] 配列をランダムソート(シャッフル)する方法

ランダムな配列 [C#] 連番配列と全要素同値の配列の初期化方法 上記リンク先で配列の生成方法についてまとめています。今回は配列をランダムな順に並び替える(つまりシャッフルする)方法をまとめます。配列を扱っていますが、実際はコレクション要素(Listなど)であれば同様に処理できます。 配列のランダムソート(シャッフル) 任意の配列について、ランダムな順にソートする方法です。 // シャッフルするも […]

C#

[C#] 連番配列と全要素同値の配列の初期化方法

連番配列 C#で連番の配列がほしいとき、以下のような書き方で要素を指定するのは面倒です。 int[] ary = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 要素数が20にもなればいちいち書いてられませんし、かといってループで要素を入れていくのもスマートではありません。ワンラインでスマートに書き上げてしまいたいところです。 連番配列の生成方法 int[] […]