C#list中string转double

从文件中读取一个CSV文件并将其中的数据拿出计算,读取文件时是以字符串形式读取,计算其中的数据时需要将string转化为double类型计算。
CSV数据内容:
在这里插入图片描述
程序:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
namespace stadyIdent
{
    class Program
    {  
      static void Main(string[] args)
        {
            List<string[]> Temp = new List<string[]>();//定义一个List类,里面存放的是String[]数组;
            Temp = ReadCSV(@"C:\Users\user\Desktop\2.csv");//读取CSV表格中的数据;
            double[] Temp4 = new double[Temp.Count];//这里定义了一个数组,与表不同,数组在定义时需要先定义数组长度;
            List<double> Temp2 = new List<double>();//定义了一个double表,和数组类似;数据的存储和数组一样;
            List<double[]> Temp3 = new List<double[]>();//定义了一个double[]数组表;
            double average = 0.0;//算平均数;
            double num = 0.0;   //算总数; 
            double average1 = 0.0;//算平均数;
            double num1 = 0.0;   //算总数; 
            for (int i = 0; i < Temp.Count; i++)
            {
                Temp4[i] = Double.Parse(Temp[i][0]);//这里是将Temp中的值转化为double类型存储在数组中;
                Temp2.Add(Double.Parse(Temp[i][0]));//这里是直接将Temp中的string类型转化为double类型;
                                                    //这里需要注意的是,Temp是string[]类型的,需要定位到该元素的位置;
            }
            Temp3.Add(Temp2.ToArray());//这是将double表转化为double[]放入double[]表内,存储的长度是【1】【27】;
            Console.WriteLine("这是 List<double[]>Temp3 的数据");
            for (int i = 0; i < Temp.Count; i++)
            {
                
                Console.Write("{0}  ", Temp3[0][i]);
                num += Temp3[0][i];
            }
            average = num / (Temp.Count);
            Console.WriteLine(num);
            Console.WriteLine(average);
            Console.WriteLine("这是 double[]Temp4 的数据");
            for (int i = 0; i < Temp4.Length; i++)
            {
              
                Console.Write("{0}  ", Temp4[i]);
                num1 += Temp4[i];
            }
            average1 = num1 / (Temp4.Length);
            Console.WriteLine(num1);
            Console.WriteLine(average1);
        }
        public static List<string[]> ReadCSV(string strPathFile)
        {
            FileStream fs = new FileStream(strPathFile, FileMode.Open, FileAccess.Read);
            StreamReader Read = new StreamReader(fs, Encoding.Default);
            List<string[]> fTemp = new List<string[]>();
            string Ide = "";
            while (Ide != null)
            {
                Ide = Read.ReadLine();
                if (Ide != null && Ide.Length > 0)
                {

                    fTemp.Add(Ide.Split(','));
                }

            }
            Read.Close();
            return fTemp;
        }
        public static void WriteCSV(List<string[]> list, string strPathFile, bool append, string strSeperate)
        {
            StreamWriter stWrite = new StreamWriter(strPathFile, append, Encoding.Default);
            foreach (string[] ac in list)
            {
                stWrite.WriteLine(string.Join(strSeperate, ac));
            }
            stWrite.Close();


        }   }
}



运行结果图:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
String换为double的方法有多种。一种常用的方法是使用Convert.ToDouble方法。该方法的签名为static double ToDouble(string value),参数value是要换的字符串。当字符串无法换为double时,该方法会抛出异常。 另一种方法是使用Double.parseDouble方法。该方法的签名为static double parseDouble(String s),参数s是要换的字符串。类似于Convert.ToDouble方法,当字符串无法换为double时,该方法也会抛出异常。 还有一种方法是使用Double.valueOf方法。该方法的签名为static Double valueOf(String s),参数s是要换的字符串。与前两种方法不同的是,该方法返回一个Double对象,而不是原始的double类型。 需要注意的是,在进行Stringdouble的过程,如果字符串不能被正确解析为一个有效的double值,就会抛出NumberFormatException异常。因此,在换之前,我们需要确保字符串的格式是正确的。 下面是一个使用Convert.ToDouble方法将String换为double的示例: ``` string str = "3.14"; double num = Convert.ToDouble(str); ``` 在这个示例,str是要换的字符串,num是换后得到的double值。 另外,还可以使用Double.parseDouble方法和Double.valueOf方法来实现Stringdouble的功能。这两种方法的用法类似,可以根据具体的需求选择使用。 综上所述,有多种方法可以将String换为double,包括Convert.ToDouble方法、Double.parseDouble方法和Double.valueOf方法。每种方法都有其特点和适用的场景,请根据具体的需求选择合适的方法进行换。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [c++ stringdouble](https://download.csdn.net/download/shy_wing/3059727)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [C# 字符串string换为double、float、int数据类型变量的方法](https://blog.csdn.net/qq_30725967/article/details/126240384)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [DoubleString](https://blog.csdn.net/weixin_44057635/article/details/124527703)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值