F# equivalent of C#’s Object Initialization syntax

In C#, you can use the object/collection initialization syntax like this:


The F# equivalent of object initialization is done like this:


As for collection initialization, you have a far more diverse range of tools available to you, for example:


You can also create slices of an existing array:


You can even add your own multi-dimensional indexers to support similar behaviours in your type too!

Update 2012/01/11:

As Robert Pickering mentioned in the comments, slicing is not limited to arrays, it works with other collection types too (as long as a GetSlice extension method is defined on the type, for more information, see here). For instance, you can use slicing on a string like this:


With 2D arrays, you can also use a multi-dimensional slicer too:



  1. Robert Pickering   •  

    Nice article. Probably worth mentioning that array slicing can also be used with strings and most other types of collections.

  2. Sebastian Ullrich   •  

    Collection initializer != array initializer. There’s no F# equivalent of C#’s collection initializers.

  3. theburningmonk   •     Author

    Sebastian Ullrich: you’re not limited to using array initialization in F#, it works with arrays, lists and sequences (which is a F# alias for IEnumerable).

Leave a Reply

Your email address will not be published.