You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Basic中将Double类型4×1数组保存为文本文件的问题

嘿,这个问题我之前也碰到过!你看到文件里显示system.double[],是因为直接对整个数组调用.ToString()的时候,默认返回的是数组的类型名称,而不是数组里的元素内容。这是.NET里数组类型的默认行为,不是你的错😉

接下来给你两种靠谱的解决方法,直接就能用:

方法1:处理一维数组(你的4×1数组如果是一维的话)

如果你的数组是double[]类型(比如new double[4]),用string.Join()就能快速把所有元素转换成带分隔符的字符串,然后写入文件:

// 先定义并赋值你的4×1数组
double[] flowArray = new double[4] { 0.5, 1.2, 3.7, 2.9 };

// 把数组元素用换行符分隔成字符串(也可以用逗号、空格等自定义分隔符)
string flowContent = string.Join(Environment.NewLine, flowArray);

// 写入文本文件
File.WriteAllText("flowt.txt", flowContent);

这样生成的文件里就会每行一个数值,比如:

0.5
1.2
3.7
2.9

如果需要控制数值的格式(比如保留两位小数),可以用LINQ配合格式化字符串:

string flowContent = string.Join(Environment.NewLine, flowArray.Select(num => num.ToString("F2")));

方法2:处理二维数组(如果你的4×1是double[,]类型)

要是你的数组是二维的(比如new double[4,1]),就得遍历每一行来提取元素:

double[,] flow2DArray = new double[4, 1] { { 0.5 }, { 1.2 }, { 3.7 }, { 2.9 } };
List<string> lineList = new List<string>();

// 遍历每一行
for (int i = 0; i < flow2DArray.GetLength(0); i++)
{
    // 提取当前行的唯一元素,转成字符串加入列表
    lineList.Add(flow2DArray[i, 0].ToString());
}

// 写入文件,每行一个元素
File.WriteAllLines("flowt.txt", lineList);

额外小技巧:更灵活的写入方式

如果数组很大,需要边生成内容边写入,用StreamWriter会更高效:

using (StreamWriter writer = new StreamWriter("flowt.txt"))
{
    foreach (double num in flowArray)
    {
        writer.WriteLine(num.ToString("F2"));
    }
}

核心思路就是:不要直接把整个数组转成字符串,要逐个处理数组里的元素,把每个元素的文本值拼接起来再写入文件。

内容的提问来源于stack exchange,提问作者Plaban

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:12:34