【问题标题】:Efficiency between searching and foreach loops搜索和 foreach 循环之间的效率
【发布时间】:2013-08-12 19:02:43
【问题描述】:

我正在使用 C# 中的 WPF。我正在使用GetNextControl 方法将所有子控件存储在Control.ControlCollection 中。我想遍历结果并只填写文本框。我已经想到了两种方法来做到这一点,但哪种方法更有效:

  1. 搜索一次并将结果存储在 Control.ControlCollection 中。
  2. 使用foreach 循环遍历集合并使用多个if/else 语句找到我正在寻找的TextBox 并在框中填写一些文本。

或者,

  1. 搜索所有控件并将其存储在Control.ControlCollection 中。
  2. 使用集合的find方法找到一个有一定名字的TextBox,并在TextBox中填写一些文字。

我认为第一种方式会比较慢,因为要进行更多比较。而第二种方法只使用搜索。

【问题讨论】:

  • 两件事 - 你没有在这里问一个问题,是什么阻止你同时尝试和测量?
  • 您认为“只搜索”是如何实现的?但您可能无需担心——很可能任何解决方案都足够好,因为问题规模很小。
  • 第 3 部分 - OfType<Textbox>() ?
  • UI 控件具有树结构,因此搜索算法足够快,如果现有算法不够快,您可以实现自己的。但结果可能会因您的 UI 架构而异。我们唯一可以建议的是:分析。
  • 忘记这一切。在 WPF 中编写单行代码之前学习 MVVM。你做了很多不必要的事情。

标签: c# wpf performance


【解决方案1】:

实施最简单的一个。在您有指标支持需求之前,不要担心优化。

如果它不够快/不够高效,则进行一些良好的时间测量。现在是时候考虑替代实现了。

实施每个替代方案并计时,选择最快/最有效的一个。

【讨论】:

  • 诚然,我有时会想得太远。谢谢提醒。
猜你喜欢
  • 2015-07-12
  • 1970-01-01
  • 2015-07-20
  • 2016-09-02
  • 2017-01-05
  • 1970-01-01
  • 2015-10-13
  • 2012-03-02
  • 1970-01-01
相关资源
最近更新 更多