【发布时间】:2010-11-16 20:58:46
【问题描述】:
我在MSDN's Linq samples 中找到了一个我想使用的名为 Fold() 的简洁方法。他们的例子:
double[] doubles = { 1.7, 2.3, 1.9, 4.1, 2.9 };
double product =
doubles.Fold((runningProduct, nextFactor) => runningProduct * nextFactor);
不幸的是,无论是在他们的示例中还是在我自己的代码中,我都无法对其进行编译,而且我在 MSDN 中的其他任何地方(例如 Enumerable 或 Array 扩展方法)都找不到提到此方法的地方。我得到的错误是一个普通的“对此一无所知”的错误:
error CS1061: 'System.Array' does not contain a definition for 'Fold' and no
extension method 'Fold' accepting a first argument of type 'System.Array' could
be found (are you missing a using directive or an assembly reference?)
我正在使用我认为来自 Linq 的其他方法(例如 Select() 和 Where()),并且我正在“使用 System.Linq”,所以我认为这一切都可以。
这种方法在 C# 3.5 中是否真的存在,如果存在,我做错了什么?
【问题讨论】:
-
查看您引用的示例页面上的面包屑线索* - 它将 C# 3 称为未来产品。未来的产品通常会在发货前发生变化。像提到的其他人一样,请参阅 Enumerable.Aggregate 并玩得开心。 :) *Visual C# 开发者中心 > 主页 > 产品信息 > 未来版本 > 101 LINQ 示例 > 聚合运算符
标签: c# linq extension-methods reduce