delphi - 有 map 功能吗?

标签 delphi collections delphi-xe2 spring4d

我刚刚写了这个函数:

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 方法是接口(interface)类型 cannot have parameterized methods .

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

关于delphi - 有 map 功能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30049702/

相关文章:

java - 以对象列表为键的 HashMap

delphi - 如何检测特定的 Delphi IDE 是否正在运行?

delphi - 从命令行编译 .dproj 文件

Delphi换行符

javascript - TEmbeddedWB/TWebbrowser : window. external 是一个空对象但是可以调用函数,为什么一开始是 'empty'?

delphi - 为什么我的程序无法识别映射的 UNC 路径?

delphi - 无法打开项目: "One or more lines were too long and have been truncated"

.net - 将 VB6 容器类升级到 VB.NET

java - 为什么 Collections 类包含独立(静态)方法,而不是将它们添加到 List 接口(interface)中?

Delphi XE2 - 处理 blob 字段