2012-10-30 140 views
1

我處於學習f#的最初階段,並且已經提出了以下場景。我需要遍歷一組電子郵件對象併爲每封電子郵件創建一個CC屬性列表。我知道這是f#的理想選擇,但我似乎無法找到任何解釋如何的東西。我認爲我的google-fu只是不夠好,有人能指出我的方向嗎?f#從集合中獲取值列表

編輯

所以基本上我想1種MAILMESSAGE類型對象的映射到不同的類型。第一種類型具有CC字段作爲MailAddress對象的ICollection。第二種類型要求CC字段是字符串列表。

+0

你能提供一個樣本輸入和輸出?目前還不清楚你想達到什麼目的。 – pad

回答

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 
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材料上相關主題:

+0

謝謝,當我意識到發生了什麼事情時,兩個答案都結合在一起給了我一個小小的尤里卡時刻!正如丹尼爾所建議的,我需要使用Seq.map作爲ICollection。慢慢到達那裏:) – shmish111