【发布时间】:2019-10-06 22:15:57
【问题描述】:
目前,我计划将 ~500K 列表添加到 datagridview。
Class 有多个 Fields,每个 List 有 13 个字段。 但我现在只绑定了 7 个字段。
问题是,添加似乎需要太多时间。 15K 需要 5 秒,这太糟糕了。
有没有办法优化这个? 还是我应该扔掉 datagridview 并考虑其他一些视图?
private void UpdateDataGrid()
{
this.dataGridView1.Rows.Clear();
for (int i = 0; i < gVar.gTagCount; i++)
{
this.dataGridView1.Rows.Add(new object[]
{
gVar.Tags[i].TagCount,
gVar.Tags[i].Name,
gVar.Tags[i].Score.Story,
gVar.Tags[i].Score.Drawing,
gVar.Tags[i].Score.Drawing,
gVar.Tags[i].Score.Memetic,
gVar.Tags[i].DupeCount
});
}
}
【问题讨论】:
-
与其这样,我认为创建一个类,填充该类的列表,然后使用 datasource 属性填充 datagridview 会更好
-
@nalnpir 我已经填充了该类的列表,因为我从原始文本文件(迭代每一行,将其值添加到字段)/格式化的 json 文件中导出它们。之后我像这样循环它们。
-
如果您已经有一个填充列表,则不需要使用 Rows.Add。你可以简单地 dataGridView1.Datasource = listofyourclass;
-
使用列表作为数据源,几乎是瞬间完成的。不过,您可能必须重构该类。
-
@nalnpir 我忘了说这个,对不起。我像这样循环的原因是 Tag 类还有其他字段,而不仅仅是那些。
标签: c#