我正处于学习f#的早期阶段,我已经提出了以下方案。我需要遍历一组电子邮件对象,并为每封电子邮件创建一个CC属性列表。我知道这对f#来说是理想的,但我似乎无法找到解释如何的东西。我认为我的google-fu还不够好,有人能指出我正确的方向吗?
修改
所以基本上我想将1种类型的MailMessage对象映射到不同的类型。第一种类型具有CC字段作为MailAddress对象的ICollection。第二种类型要求CC字段为字符串列表。
答案 0 :(得分: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"}; ]
您可以使用列表模块中的高阶函数来操作emails
:
let bodies = emails |> List.map (fun e -> e.Body)
// val bodies = ["Body 1"; "Body 2"; "Body 3"]
要开始使用,请查看相关主题的一些MSDN资料:
答案 1 :(得分: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