1

我正处于学习 f# 的早期阶段,我想出了以下场景。我需要遍历一组电子邮件对象并为每封电子邮件创建一个 CC 属性列表。我知道这对于 f# 来说是理想的,但我似乎找不到任何解释方法。我认为我的 google-fu 不够好,有人能指出我正确的方向吗?

编辑

所以基本上我想将一种类型的 MailMessage 对象映射到另一种类型。第一种类型具有作为 MailAddress 对象的 ICollection 的 CC 字段。第二种类型要求 CC 字段是字符串列表。

4

2 回答 2

2

假设您有一个Email建模为 F# 记录的类型:

type Email = 
  { Subject: string;
    Body: string; }

和电子邮件列表:

let emails =
  [ {Subject = "Subject 1"; Body = "Body 1"};
    {Subject = "Subject 2"; Body = "Body 2"};
    {Subject = "Subject 3"; Body = "Body 3"}; ]

您可以使用 List 模块中的高阶函数来操作emails

let bodies = emails |> List.map (fun e -> e.Body)
// val bodies = ["Body 1"; "Body 2"; "Body 3"]

要开始使用,请查看有关相关主题的一些 MSDN 资料:

于 2012-10-30T21:58:17.427 回答
0

像这样的东西?

type Email = { Body : string }
// create some emails
let emails = Seq.init 10 (fun i -> { Body = string i })
// get list of bodies
let bodies = emails |> Seq.map (fun { Body = body } -> body) |> Seq.toList
于 2012-10-30T21:53:55.600 回答