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

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

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

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

Q&A

解決済

1回答

2015閲覧

多次元配列の検索方法

FujiBayashi

総合スコア19

C#

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

0グッド

0クリップ

投稿2021/12/07 11:08

bool型の多次元配列のなかに「falseが含まれているか」を確認するにはどうすればよいでしょうか?

該当のソースコード

C#

1 2bool[,,] testMDArray = new bool[5,4,3]; 3

このような多次元配列のTrueやFalseを検索する際、1次元配列で言うAny()やAll()のように使えるメソッドはあるのでしょうか?

すぐに解るだろうと思い調べ始めるとなかなか解らず、たどりついた↓このフォーラム内に
https://stackoverflow.com/questions/6084940/how-do-i-search-a-multi-dimensional-array

「There is no built in multi-dimensional search function. You'd have to write it yourself.」
(多次元配列を検索する機能はないよ。自分で作るしかないね)

という発言を見つけて愕然としておりました…。

一次元配列のように便利な方法は無いのでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

多次元配列でも普通にforeachできます。
配列での foreach の使用 - C# プログラミング ガイド | Microsoft Docs

あまり知られていないのは、多次元で全列挙することが少ないからかもしれません。

1次元配列はIEnumerable<T>を実装しますが多次元配列はIEnumerableのため、LINQを使用するにはCastしてください(なんで<T>がないかは知りません^^;
Array クラス (System) | Microsoft Docs

cs

1int[,] numbers2D = { { 1, 2, 3, }, { 4, 5, 6, }, { 7, 8, 9, }, }; 2foreach (var i in numbers2D) 3{ 4 Console.Write($"{i} "); // 1 2 3 4 5 6 7 8 9 5} 6Console.WriteLine(); 7 8 9var testMDArray = new bool[4, 3, 2] 10{ 11 { 12 { true, true, }, { true, true, }, { true, true, }, 13 }, 14 { 15 { true, true, }, { true, true, }, { true, true, }, 16 }, 17 { 18 { true, true, }, { true, true, }, { true, true, }, 19 }, 20 { 21 { true, true, }, { true, false, }, { true, true, }, 22 }, 23}; 24Console.WriteLine(testMDArray.Cast<bool>().Any(x => !x)); // True

投稿2021/12/07 13:29

編集2023/08/15 15:32
TN8001

総合スコア9321

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問