【问题标题】:Filling ListView using an array使用数组填充 ListView
【发布时间】:2014-06-14 17:38:21
【问题描述】:

我正在尝试将大量数据加载到 listView。下面的代码正在运行,但我想创建一个列表视图项数组,然后将此数组添加到我的列表视图中。有人可以告诉我怎么做吗?

using (var csv = new CsvReader(new StreamReader(openFileDialog1.FileName), true))
{
    int fieldCount = csv.FieldCount;
    string[] headers = csv.GetFieldHeaders();
    int i = 0;
    while (csv.ReadNextRecord())
    {
        this.listView1.Items.Add(
            new ListViewItem(new[] { csv[0], csv[1], csv[2], csv[3], csv[4] })
        );
    }
}

【问题讨论】:

  • 什么是“问题”?

标签: c# arrays performance listview


【解决方案1】:

除非您事先知道 csv 中有多少行,否则最简单的方法可能是使用列表:

List<ListViewItem> items = new List<ListViewItem>();
while (csv.ReadNextRecord())
    items.Add(new ListViewItem(new[] { csv[0], csv[1], csv[2], csv[3], csv[4] }));
ListViewItem[] array = items.ToArray();
this.listView1.Items.AddRange(array);

你已经拥有它的方式应该足够了。如果您担心渲染速度,可以将代码封装在 listView1.BeginUpdate()listView1.EndUpdate() 调用中以加快速度。

您可以在此处阅读更多相关信息:http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.beginupdate%28v=vs.110%29.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多