看看下面的例子总和,所有项目的特定属性的列表
我有一个类
public class SomeItem
{
public string Name;
public DateTime Published;
public uint16 Size;
}
我有一个List<SomeItem>
,我想计算的全部总规模项目。
在C#我想简单地写
var totalSize = items.Sum((i) => i.Size);
我已经采取了看看在F#列表的功能,但他们总是抱怨的类型。
你会如何在F#中编写它?
(我已经尝试了搜索引擎,但F#的搜索引擎支持是可怕的)
其他人建议Seq.sum_by, 我很感兴趣,为什么你认为Seq.fold – TimothyP 2009-05-05 14:28:14
@TimothyP:Seq.fold会做的工作,只是它的宗旨是比sum_by更通用的(可以多所有的值例如,一个列表)。在这种情况下,sum_by是很好的简单解决方案。 – Noldorin 2009-05-05 14:38:32
同意。但是,如果您正在查找描述“按顺序对所有项目执行操作并提供单一结果”的搜索术语,那么搜索折叠/折叠将为您提供一般解决方案。 – 2009-05-05 16:22:49