Loading collection data...
Collections are a way for you to organize kata so that you can create your own training routines. Every collection you create is public and automatically sharable with other warriors. After you have added a few kata to a collection you and others can train on the kata contained within the collection.
Get started now by creating a new collection.
Tuple<> is a reference type (class), while KeyValuePair<> is a value type (struct). Using of struct could be useful to decrease memory traffic. If this metric is not valuable in you case you can use Tuple<> as well.
Interesting solution! But it looks like you suppose that the order of iteration of Dictionary will be the same as the order of initialization. AFAIK it's not true. Second thing that catch my attention was clearing the spaces between words. As a result there could be an issue if the word "sixty" will be checked before the word "six".
According to https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.dictionary-2?view=netframework-4.8 :
"For purposes of enumeration, each item in the dictionary is treated as a KeyValuePair<TKey,TValue> structure representing a value and its key. The order in which the items are returned is undefined.", so formattedValues could be in order different that the values were added to the dictionary.
sorting is O(n * LOG(n))