我试过以下代码我做错了什么?
// Test IO
// Write a test file
let str : string[,] = Array2D.init 1 ASize (fun i j -> result.[i,j].ToString() )
System.IO.File.WriteAllLines(@"test.txt", str );
Run Code Online (Sandbox Code Playgroud)
Array2D.init你代码中的第一个参数总是1吗?如果是,那么你可以创建一维数组,它将正常工作:
let str = Array.init ASize (fun j -> result.[0,j].ToString() )
System.IO.File.WriteAllLines("test.txt", str );
Run Code Online (Sandbox Code Playgroud)
如果你真的需要一个二维数组写入一个文件,那么你就可以二维数组转换成一维数组.我能想到的最简单的方法是:
let separator = ""
let ar = Array.init (str.GetLength(0)) (fun i ->
seq { for j in 0 .. str.GetLength(1) - 1 -> str.[i, j] }
|> String.concat separator )
Run Code Online (Sandbox Code Playgroud)
这将生成一个一维数组(沿着第一坐标),然后聚集沿着第二元素坐标.它使用String.concat,因此您可以在一行上指定项目之间的分隔符.
| 归档时间: |
|
| 查看次数: |
1848 次 |
| 最近记录: |