• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

May be of interest to dotNET Developers


Staff member
FSDevConf team
Resource contributor
I was hunting about looking at different Tree data structure implementations and I came across this link:


C5 seems to be a comprehensive set of collection classes. One of the things that I find is needed in most of my applications is a suitable collection. I have tended to use something inherited from the hash table.

I'm not very good with stuff where the only documentation is property and method descriptions. This has a good 'book' in pdf format describing different collection types and they are implemented in a class library.

Just thought I'd share it :D
At a first glance they do appear to be decent - and being a project from ITU I would guess the algorithms are pretty optimal, so for now I do not see any reasons not to use these.

You should notice that the hash table is dead and burried. It was a disaster introduced in .NET 1.0 due to the lack of generics (along with ArrayList and the other horror-storries). You should use the List and Dictionary collections instead - they work fine, but for one or another reason Microsoft decided that collections should not have events, as this actually would mean people could use them (and we can't sudently introduce useful collections after having told everyone that the collections in 1.0/1.1 is all you need).

As Microsoft themselves needed events on the list (obviously), they introduced the BindingList in the ComponentModel namespace. Unfortunately this one is polluted with properties that simply do not belong in the data model (you can't set the sorting on the datamodel as the collection can obviously be used in two views with different sorting at the same time).