有地图功能吗?

延斯·穆伦霍夫(JensMühlenhoff)

我只是写了这个函数:

class function TGenerics.Map<TFrom, TTo>(const AEnumerable: IEnumerable<TFrom>;
  const AConverter: TConstFunc<TFrom, TTo>): IList<TTo>;
var
  L: IList<TTo>;
begin
  L := TCollections.CreateList<TTo>;
  AEnumerable.ForEach(
    procedure(const AItem: TFrom)
    begin
      L.Add(AConverter(AItem));
    end
  );
  Result := L;
end;

这大致相当于Haskells map(或fmapliftM等)。

所以我想知道Spring4D中已经存在这样的东西吗?

斯蒂芬·格里恩克

你所寻找被称为TEnumerable.Select<T, TResult>Spring.Collections(推出了针对尚未发布1.2 -见开发分支)。

IEnumerable<T>没有Select方法的原因是接口类型不能具有参数化方法

请记住,Spring4D中的实现与您的实现不同,因为它使用流传输和延迟执行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章