繁体   English   中英

WinForm C#高效搜索DataGridView(未绑定)

[英]WinForm C# Efficient Search of DataGridView (unbound)

我有一个使用dataGridGrid的C#winForm,并且每秒接收大约20 msgs的消息,我大约有1000行...是否有任何“快速查找”方法和/或设计模式将允许我定位特定行没有迭代通过dataGridView.Rows集合? 这似乎是一种非常低效的方法,但是我似乎找不到dataGridView.Rows.Remove()以外的其他东西,而我“认为”这是一个循环,对吗? 有人可以帮我吗?

提前致谢,

-DA

您可能可以使用一些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
}

如果我正确理解了您的问题,则希望在DataGridView中查找特定的行并将其删除。 假设您使用的是DataGridView,请尝试将其DataSource绑定到BindingSource,然后可以找到(最后添加的)行,如下所示:

    BindingSource.Position = BindingSource.Find(string PropertyName, object key);

要删除选定的行,请将位置保存到变量中,然后:

    DataGridView.Rows.RemoveAt(your variable);

希望能有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM