Tôi tìm thấy trong các mẫu Linq của MSDN một phương thức gọn gàng được gọi là Fold () mà tôi muốn sử dụng. Ví dụ của họ:
double[] doubles = { 1.7, 2.3, 1.9, 4.1, 2.9 };
double product =
doubles.Fold((runningProduct, nextFactor) => runningProduct * nextFactor);
Thật không may, tôi không thể lấy điều này để biên dịch, trong ví dụ của họ hoặc trong mã của riêng tôi và tôi không thể tìm thấy bất kỳ nơi nào khác trong MSDN (như các phương thức mở rộng Enumerable hoặc Array) đề cập đến phương pháp này. Lỗi tôi nhận được là một lỗi cũ rõ ràng "không biết gì về điều đó":
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?)
Tôi đang sử dụng các phương pháp khác mà tôi tin rằng đến từ Linq (như Select () và Where ()) và tôi đang "sử dụng System.Linq", vì vậy tôi nghĩ rằng tất cả đều ổn.
Phương pháp này có thực sự tồn tại trong C # 3.5 không, và nếu vậy, tôi đang làm gì sai?