各位早安。
使用 C sharp .net4 和 MS Visual Studio 2010。
我为我的 Windows 窗体程序开发了一个重复检查器。当有几百条记录时,它完美地工作并且在我的 Datagrid 上几乎是即时的。
我注意到的问题是,当显示 6000 条记录时,它根本不够高效,需要几分钟。
如果有人有一些好的技巧可以让这种方法更快地改进现有设计,或者我已经看过的不同方法,我正在徘徊。
再次非常感谢您的帮助!
这是代码:
public void CheckForDuplicate()
{
DataGridViewRowCollection coll = ParetoGrid.Rows;
DataGridViewRowCollection colls = ParetoGrid.Rows;
IList<String> listParts = new List<String>();
int count = 0;
foreach (DataGridViewRow item in coll)
{
foreach (DataGridViewRow items in colls)
{
count++;
if ((items.Cells["NewPareto"].Value != null) && (items.Cells["NewPareto"].Value != DBNull.Value))
{
if ((items.Cells["NewPareto"].Value != DBNull.Value) && (items.Cells["NewPareto"].Value != null) && (items.Cells["NewPareto"].Value.Equals(item.Cells["NewPareto"].Value)))
{
if ((items.Cells["Part"].Value != DBNull.Value) && (items.Cells["Part"].Value != null) && !(items.Cells["Part"].Value.Equals(item.Cells["Part"].Value)))
{
listParts.Add(items.Cells["Part"].Value.ToString());
dupi = true; //boolean toggle
}
}
}
}
}
MyErrorGrid.DataSource = listParts.Select(x => new { Part = x }).ToList();
}
任何问题让我知道,我会尽力回答。