bool配列をソースコード1行で、反転させる方法を紹介します。
bool配列を反転させる
例えば以下のような配列があったとします。
[false, true, false, true]
これを、各要素を反転させたい。
※反転:trueはfalseへ、falseはtrueへ。
↓こうしたい。
[true, false, true, false]
各要素がtrue⇔falseへ変換されていることがわかります。
【ソースコード】bool配列を反転させる方法
for文とかでも出来るけどなんかスッキリしない
まぁシンプルといえばシンプルかもしれませんが、基本的なやりかたをすればこれが一番シンプルだと思います。
1 2 3 4 5 6 7 | bool[] boolArray = new bool[] { true, false, true, false }; bool[] newArray = new bool[boolArray.Length]; for (int i = 0; i < boolArray.Length; i++) { newArray[i] = !boolArray[i]; } |
boolArrayが変換元のbool配列。
newArrayが変換後の値を格納するための配列。boolArrayのサイズであらかじめ配列を宣言しておきます。
そしてfor文でboolArrayの要素数分繰り返し、各要素を反転した値をnewArrayに格納しています。
もう少しスッキリさせると。
【スッキリ】LINQを使って1行でブール配列を反転させる方法
LINQってなんかよくわからないですよね。
私も最初はそうでした(今でもよくわかってないかも?)。でも非常に便利なんです。
そんなLINQを使うと、1行ですっきりかけちゃいます。
1 2 | bool[] boolArray = new bool[] { true, false, true, false }; bool[] newArray = boolArray.Select(b => !b).ToArray(); |
Selectを使います。
※MSDNの解説は以下のリンクから参照できます。
MSDNにはSelectの説明は以下のように書いています。
シーケンスの各要素を新しいフォームに射影します。
今回の例だと、Selectで指定した条件で新しい配列を作って返す、みたいな感じです。
まとめ
- bool配列の各要素の反転はLINQのSelectを使うと簡単