在C#中优化大型文件的Listview

 虽虽___Hui 发布于 2023-02-12 18:46

我有一个C#程序,它正在提取一个大约的.csv文件.42,000行长.文件中的所有数据都存储如下:

Zipcode,City,State

我将所有信息都分成三个不同的列listview.

目前这个数据大约需要30到50秒才能进入我的程序.我的问题是如何才能更好地优化我的代码以缩短时间?

以下是我的代码片段.评论的代码是我之前尝试的代码,但没有成功减少时间,因此我以一种更容易阅读的方式重写了它.

 //These are globally declared.
lvZip.Columns.Add("Zipcode", 150, HorizontalAlignment.Left);
lvZip.Columns.Add("City", 150, HorizontalAlignment.Left);
lvZip.Columns.Add("State", 150, HorizontalAlignment.Left);
lvZip.View = View.Details;

lvZip.Items.Clear();

        //string dir = System.IO.Path.GetDirectoryName(
        //  System.Reflection.Assembly.GetExecutingAssembly().Location);

        //string path = dir + @"\zip_code_database_edited.csv";
        //var open = new StreamReader(File.OpenRead(path));

        //foreach (String s in File.ReadAllLines(path))
        //{
        //    Zipinfo = s.Split(',');
        //    Zipinfo[0] = Zipinfo[0].Trim();
        //    Zipinfo[1] = Zipinfo[1].Trim();
        //    Zipinfo[2] = Zipinfo[2].Trim();
        //    lvItem = new ListViewItem(Zipinfo);
        //    lvZip.Items.Add(lvItem);
        //}
        //open.Close();

        StreamReader myreader = File.OpenText(path);
        aLine = myreader.ReadLine();

        while (aLine != null)
        {
            Zipinfo = aLine.Split(',');
            Zipinfo[0] = Zipinfo[0].Trim();
            Zipinfo[1] = Zipinfo[1].Trim();
            Zipinfo[2] = Zipinfo[2].Trim();
            lvItem = new ListViewItem(Zipinfo);
            lvZip.Items.Add(lvItem);
            aLine = myreader.ReadLine();
        }
        myreader.Close();

小智.. 5

你应该做的是使用ListView.BeginUpdate()ListView.EndUpdate()在ListView中添加任何内容之前和之后.第二件事是使用ListView.AddRange()而不是ListView.Add().通过使用Add方法,每次使用时都会重绘ListView.但是,使用ListView.AddRange()您只会重绘一次.这应该为你优化一点.

1 个回答
  • 你应该做的是使用ListView.BeginUpdate()ListView.EndUpdate()在ListView中添加任何内容之前和之后.第二件事是使用ListView.AddRange()而不是ListView.Add().通过使用Add方法,每次使用时都会重绘ListView.但是,使用ListView.AddRange()您只会重绘一次.这应该为你优化一点.

    2023-02-12 18:48 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有