0
我從下面的代碼中獲得Datatable
的不同值。這非常慢。憑藉9000個獨特的值,我在2分鐘後停止了閱讀。是否有可能做得更快?獲取datagridview不同的列值
private void GetWaarde(string Veldnaam)
{
if (DatatabelExport.Rows.Count > 0)
{
Cursor.Current = Cursors.WaitCursor;
DataGridViewComboBoxColumn cb = (DataGridViewComboBoxColumn)dataGridView3.Columns["Waarde"];
if (cb.Items.ToString() != "") //als veld Waarde al gevuld is dan niet opnieuw vullen
{
var x = (from r in DatatabelExport.AsEnumerable()
select r[dataGridView1.Columns[Veldnaam].Name]).Distinct().ToList();
for (int i = 0; i < x.Count - 1; i++)
{
cb.Items.Add(x[i].ToString());
}
}
cb.Dispose();
Cursor.Current = Cursors.Default;
}
}
首先我會重新考慮UI設計。沒有用戶願意享受面對9000個項目的CBO。來自DGV數據源的第二部作品(datatable?)。第三,不是逐個添加項目,而是使用AddRange或者甚至更好地將您的列表用作數據源。第四,哪一部分佔用最多的時間?使用類似的代碼我可以在4或5秒內從數據表中獲得20000個唯一值(ID) – Plutonix
代碼的耗時部分不會從數據表獲取唯一值。這是您將項目添加到組合框的部分。要查看解決方案,請查看[此帖子](https://stackoverflow.com/a/39338415/3110834)。 –
我注意到您在以前的問題中沒有接受過任何答案,也沒有投過票。請參加[參觀]並瞭解如何接受並提出答案,並對以前的問題進行審覈,並接受並提出好的答案。 –