我有一个使用dataGridGrid的C#winForm,我每秒接收大约20个消息,我有大约1000行...是否有任何“快速查找”方法和/或设计模式,这将允许我找不到特定的行而不迭代dataGridView.Rows集合?这似乎是一种非常低效的方法,但我似乎找不到除了dataGridView.Rows.Remove()以外的任何其他东西,我“认为”是一个循环,我是否正确?有人可以帮帮我吗?
提前致谢,
-DA
答案 0 :(得分:0)
你可能会使用一些LINQ来查找行,因为它是未绑定的。我不知道你对的是什么,但希望这可能会有所帮助:
var x = (from DataGridViewRow r in dataGridGrid.Rows
where r.Cells[SomeCellIndex_OrName].Value == "Some Value"
select r).FirstOrDefault();
if (x != null ) {
//Do Something to x
// x is your row
// x == null when not found
}
答案 1 :(得分:0)
如果我正确理解了您的问题,您希望在DataGridView中找到特定的行并将其删除。 假设您正在使用DataGridView尝试将其DataSource绑定到BindingSource,然后您可以找到(最后添加的)行,如下所示:
BindingSource.Position = BindingSource.Find(string PropertyName, object key);
要删除所选行,请将您的位置保存到变量,然后:
DataGridView.Rows.RemoveAt(your variable);
希望有所帮助