我正处于学习 f# 的早期阶段,我想出了以下场景。我需要遍历一组电子邮件对象并为每封电子邮件创建一个 CC 属性列表。我知道这对于 f# 来说是理想的,但我似乎找不到任何解释方法。我认为我的 google-fu 不够好,有人能指出我正确的方向吗?
编辑
所以基本上我想将一种类型的 MailMessage 对象映射到另一种类型。第一种类型具有作为 MailAddress 对象的 ICollection 的 CC 字段。第二种类型要求 CC 字段是字符串列表。
我正处于学习 f# 的早期阶段,我想出了以下场景。我需要遍历一组电子邮件对象并为每封电子邮件创建一个 CC 属性列表。我知道这对于 f# 来说是理想的,但我似乎找不到任何解释方法。我认为我的 google-fu 不够好,有人能指出我正确的方向吗?
编辑
所以基本上我想将一种类型的 MailMessage 对象映射到另一种类型。第一种类型具有作为 MailAddress 对象的 ICollection 的 CC 字段。第二种类型要求 CC 字段是字符串列表。
假设您有一个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 资料:
像这样的东西?
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