2013-06-24 3 views
0

Пусть имеют следующий тип записи I:Как использовать метод расширения Sum в списке .NET в F #?

open System.Collections.Generic 

type Store = 
    { 
     Products: List<Product>; 
    } 
    member this.TotalNumberOfItems = 
     this.Products.Sum(fun p -> p.NumberInInventory) 

Я хочу подвести подсчет общего количества предметов в магазине, как и в описанном выше способе, однако методы расширения System.Collections.Generic.List не кажется быть доступным. Intellisense не показывает их. Как я могу назвать Sum из F #?

ответ

2

Вам просто нужно открыть пространство имен System.Linq. Например:

open System.Collections.Generic 
open System.Linq 

type Product = { NumberInInventory : int; } 

type Store = 
    { 
     Products: List<Product>; 
    } 
    member this.TotalNumberOfItems = 
     this.Products.Sum(fun p -> p.NumberInInventory) 
+3

Однако идиоматических F # способ сделать это было бы с модулем Seq: 'this.Products |> Seq.sumBy (весело р -> p.NumberInInventory)' –