我正在尝试将其写为 LINQ,
原始代码:
For Each CurrentForm As Form In MyForms
AddLink(CurrentForm.GetLink())
Next
我是一个 LINQ 初学者,到目前为止我不太确定在哪里使用和在哪里不使用。如果在这种情况下 LINQ 会造成更大的伤害然后提供帮助,请随意给我发火。
编辑:您可以假设 AddLink() 有一个重载,它需要 IEnumerable
除非存在采用集合的 AddLink 重载,否则 LINQ 不会避免循环。
是否有这样的过载然后是这样的:
AddLinks(MyForms.Select(f => f.GetLink())
会做的。
上述表达式的工作原理(简要):
有很多事情要做,这是 LINQ 的优点之一,它是一种表达数据操作的紧凑方式,没有显式循环和临时变量的通常开销。
这里没有火焰,但 LINQ 在这里不会有真正的帮助。如果 LINQ 有一个ForEach
方法(如上一个问题以及其他地方所讨论的),那么您可以使用它 - 但它不是 LINQ 内置的,在这种情况下,它似乎并没有太大用处。
当然,这完全取决于它AddLink
的作用——如果它向列表添加一个链接,而您可以使用 (say) List.AddRange
,那么您可以使用 LINQ。但是这段代码看起来已经非常简单和可读了,所以在这种情况下我不会担心。