本文介绍了Array2D到Array的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的Array2D分别为0和1:

I have Array2D of 0 and 1:

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

我需要计算'1'元素的数量,例如:

I need to calculate the count of '1'-elements, something like:

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

但是'a'是Array2D(不是Array),所以我只是想知道是否存在将Array2D转换为Array的标准方法?

But 'a' is Array2D (not Array) so I'm just wondering if there is a standard way to transform Array2D to Array?

推荐答案

使用[,]实现ienumerable<_>

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

但是如果您只需要计数就可以

but if you only need the count you can do

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

因为0项不会加到总和中,而您要计数的项仅为1

as the 0 terms won't add to the sum and the terms you want to count are just 1

这篇关于Array2D到Array的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-01 00:17