Array2D в массив

У меня Array2D 0 и 1:

let rnd = System.Random()
let a = Array2D.init n n (fun i j  -> int(System.Math.Round(rnd.NextDouble() / index)) )

Мне нужно рассчитать количество '1' -элементов, что-то вроде:

a |> Array.filter (fun x -> x == 1)

Но «a» - это Array2D (не Array), поэтому мне просто интересно, существует ли стандартный способ преобразования Array2D в Array?

Ответы на вопрос(2)

Решение Вопроса

Вот один простой способ, используя тот факт, что[,] инвентарьienumerable<_>

a |> Seq.cast<int> |> Seq.filter (fun x -> x == 1)

но если вам нужен только счет, вы можете сделать

a |> Seq.cast<int> |> Seq.sum

так как 0 слагаемых не прибавит к сумме, а слагаемые, которые вы хотите посчитать, всего лишь 1

циях.

Вы можете держать его вArray2D модуль для удобного использования.

module Array2D =
    let toArray (arr: 'T [,]) = arr |> Seq.cast<'T> |> Seq.toArray

Ваш ответ на вопрос