如何使用现有项初始化F#中的序列?

Jos*_*den 6 f# sequence

在C#中,您可以初始化一个列表,如下所示:

var list = new List<int> { obj1, obj2, obj3 };
Run Code Online (Sandbox Code Playgroud)

我期待在F#中做类似的事情,但不断收到错误:

let list =  { obj1, obj2, obj3 }
Run Code Online (Sandbox Code Playgroud)

这可能在F#中吗?

Tom*_*cek 13

要创建(不可变的)F#列表,您可以编写:

let list = [ obj1; obj2; obj3 ]
Run Code Online (Sandbox Code Playgroud)

还有很多其他选择.您可以使用[| .. |]而不是创建数组[ .. ],也可以编写允许生成数据的序列表达式 - 类似于C#迭代器方法.有关更多信息,请参阅:

  • @JoshuaBelden谢谢!构造`IEnumerable <T>`(或`seq <T>`)的另一种方法是使用名为`seq`的内置函数,所以你可以编写例如`seq [1; 2; 3]`(它只是创建一个列表并投下它) (6认同)
  • @JoshuaBelden - 你可以做`[obj1; obj2; obj3]:> Seq <_>` - 由于`Seq`是一个接口,我不认为这种`Seq`文字得到支持 (3认同)