如何使用C#从链接读取CSV文件并获得一列数据的平均值?

iqih9akk  于 2023-01-10  发布在  C#
关注(0)|答案(1)|浏览(157)

我尝试从一个网址下载一个csv文件,读取它并通过HTML将它的数据转换成可视化,所以基本上是一个ETL过程。然而,我正在努力平均数据并得到一个结果。
我试着用Console.WriteLine检查平均值,但它是NaN,所以要么是平均数据要么是阅读数据有问题。
有谁能帮我指出问题可能出在哪里?

using System;
using System.Net;
using System.IO;
using System.Linq;

namespace ETL
{
    class Program
    {
        static void Main(string[] args)
        {
            string url = "https://www.file-upload.net/download-15071709/data.csv.html";
            WebClient client = new WebClient();
            string data = client.DownloadString(url);

      
            string fileName = "one.csv";
            File.WriteAllText(fileName, data);

           
            string[] lines = File.ReadAllLines(fileName);

    
            double sum = 0;
            int count = 0;
            foreach (string line in lines)
            {
                string[] values = line.Split(',');
                if (values[0] == "Strom")
                {
                    sum += double.Parse(values[1]);
                    count++;
                }
            }
            double average = sum / count;

            string html = $"<html><body><p>Average power consumption is: {average}</p></body></html>";
            File.WriteAllText("index.html", html);
        }
    }
}

提前感谢您的任何帮助!:D

uurv41yg

uurv41yg1#

您的代码实际上是正确的,但URL不是CSV文件的下载链接。因此,您正在解析Web表单。换句话说:原始HTML代码。
我用https://filesamples.com/samples/document/csv/sample4.csv尝试了你的代码,它正确地返回了CSV。

相关问题