|
4
|
| Klaus Byskov Pedersen · 技术社区 · 16 年前 |
|
|
1
4
我用两种方法。一个迭代列表,一个使用lazy eval。我用它们作为情况的定义。
|
|
2
5
你可以写一个扩展方法,但是
good reasons
为什么没有在上实现foreach
将IEnumerable复制到一个列表中(除非它已经是一个列表,我假设),所以您最好将IEnumerable与good old进行迭代
附录: 对我来说,eric lippert这篇文章的重点是添加foreach没有任何好处,并增加了一些潜在的陷阱:
|
|
|
3
5
我更喜欢这个:
这是一个更清楚的成语,它说收集一系列的东西在一起 然后 做一些可能改变应用程序状态的重要事情。它的老派,但它的工作,实际上是更容易理解的更广泛的观众。 |
|
|
4
2
您可以编写自己的扩展方法
这种方法在linq中不存在,因为linq基本上用于查询,而不是简单的迭代。
另外,请注意,当使用
例如,以下代码不会调用扩展方法:
鉴于以下情况:
|
|
|
5
1
您可以编写自己的扩展方法tolist(this list thelist){returnthelist;},然后避免开销。因为您的扩展方法是最具体的方法,所以它将被调用,而不是IEnumerable上的方法 |
|
|
6
-2
如果您决定通过一个扩展方法来实现这一点,我将调用它forall而不是foreach。这是为了使用与 Parallel Extensions in .NET 4.0 用途:
|
|
Akira Takeshi · 如何用JavaScript编写扩展方法 2 年前 |
|
|
Aleksandar · 无法调用枚举扩展方法 2 年前 |
|
|
Codebadger · 将泛型传递给扩展方法 8 年前 |
|
|
Otman IGHOULASSEN · 从子类调用基类的扩展方法 8 年前 |
|
|
sirksel · 拳击弦场或扩展Kotlin中所有弦的替代方案? 8 年前 |