优化HTTP请求和CSV文件上的多个拆分

时间:2016-10-17 02:23:45

标签: c# arrays list http

我正在尝试从网站读取CSV文件,然后将初始字符串拆分为\n,然后再按,拆分。 当我尝试打印出其中一个数组的内容时,它非常慢,每个Console.WriteLine()打印每个元素之间需要差不多一秒钟。

我不完全确定为什么需要花费大量时间来打印。

任何指针都会有所帮助

public List<string[]> list = new List<string[]>();
    public List<string[]> Content
    {
        get
        {
            using (var url = new WebClient())
            {
                _content = url.DownloadString("https://docs.google.com/spreadsheets/d/1DDhAd98p5RwXqvV53P2YvaujIQEg28HjeXasrCge9Qo/pub?output=csv");
            }
            var urlArr = _content.Split('\n');

            foreach (var i in urlArr)
            {
                var contentArr = i.Split(',');
                List.Add(contentArr);
            }
            return list;
        }
    }

主要

 var data = new ReadCSV(); 

 for(var i = 0; i < data.Content[2].Length; i++)
        Console.WriteLine(data.Content[2][i]);

1 个答案:

答案 0 :(得分:1)

你应该在Content属性中或在循环之前将结果缓存到变量中,因为当前你的代码下载并在每次循环中拆分字符串,这就是为什么它需要1秒

因此,您的代码应如下所示:

var data = new ReadCSV(); 
var content = data.Content[2];

 for(var i = 0; i < content.Length; i++)
        Console.WriteLine(content[2][i]);