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

C# WinForm应用中如何将加载的文本数据转为double类型而非string

实现方案
  • 第一步:在窗体类的方法外部声明全局double类型集合,方便后续全局访问数据、计算最大值:
// 写在Form类的内部,所有方法的外面
List<double[]> allDoubleData = new List<double[]>();
  • 第二步:修改按钮点击事件代码,新增字符串转double的逻辑,同时保留原有表格赋值逻辑,默认加了异常兼容避免文本内有非数字内容导致程序崩溃:
private void button1_openfile_Click(object sender, EventArgs e)
{
    // 加载新数据前清空旧内容,避免重复累加
    table.Rows.Clear();
    allDoubleData.Clear();

    string[] lines = File.ReadAllLines(@"C:\Users\Siti Nurhazwani\Desktop\table.txt");
    string[] values;

    for (int i = 0; i < lines.Length; i++)
    {
        // lines本身就是字符串数组,无需再调用ToString()
        values = lines[i].Split('/');
        string[] tableRow = new string[values.Length];
        double[] doubleRow = new double[values.Length];

        for (int j = 0; j < values.Length; j++)
        {
            tableRow[j] = values[j];
            // 字符串转double,转换失败默认存0,也可以自行添加转换失败的提示逻辑
            double.TryParse(values[j].Trim(), out doubleRow[j]);
        }

        table.Rows.Add(tableRow);
        allDoubleData.Add(doubleRow);
    }
}
  • 第三步:后续计算最大值的方法示例
// 1. 取所有数据的全局最大值
double globalMax = allDoubleData.SelectMany(row => row).Max();

// 2. 取指定行的最大值(示例取第一行,索引从0开始)
double rowMax = allDoubleData[0].Max();

注意:如果使用Max()方法报错,需要在代码顶部引入对应命名空间:using System.Linq;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 04:12:02