F# equivalent of C#’s Object Initialization syntax

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

image

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

image

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

image

You can also create slices of an existing array:

image

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:

image

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

image


Yan Cui

I’m an AWS Serverless Hero and the author of Production-Ready Serverless. I have run production workload at scale in AWS for nearly 10 years and I have been an architect or principal engineer with a variety of industries ranging from banking, e-commerce, sports streaming to mobile gaming. I currently work as an independent consultant focused on AWS and serverless.

You can contact me via Email, Twitter and LinkedIn.

Hire me.