2012-12-09 19 views
3

在C#中,你可以初始化列表,像這樣:如何使用現有項目初始化F#中的序列?

var list = new List<int> { obj1, obj2, obj3 }; 

我期待做在F#相似的東西,但不斷收到錯誤:

let list = { obj1, obj2, obj3 } 

在F#這可能嗎?

+3

的[列表(F#)](http://msdn.microsoft.com/en-us/library/dd233224.aspx )MSDN頁面上有一堆示例。 –

回答

11

要創建一個(不可變的)F#列表,你可以寫:

let list = [ obj1; obj2; obj3 ] 

有許多其他的選擇。您可以使用[| .. |]而不是[ .. ]來創建數組,您也可以編寫允許生成數據的序列表達式 - 與C#迭代器方法類似。有關詳細信息,請參閱:

+0

我試圖得到一個序列,但是自從我將它傳入的方法期望IEnumerable以來,它就起作用了。你知道如何啓動一個Seq嗎? –

+2

@JoshuaBelden - 你可以做'[obj1; obj2; obj3]:> Seq <_>' - 由於'Seq'是一個接口,我不認爲這種'Seq'字面支持 –

+0

啊!神交!我在想[]是數組,seq與System.Collections.Generic.List 直接相關。 Seq是IEnumerable 的別名。列表是我正在尋找,這就是爲什麼我可以將它傳遞給我的方法,預計IEnumerable 。演員陣容將是無關緊要的。謝謝紳士,非常感謝。湯姆,迄今爲止最棒的一本書。 –

相關問題