This is for any discussion or bug submissions. Source code here.
Uses dynamically allocated strings. As with other versions this version maintains stable index values (at least until you delete an entry), so can be used to map.
My primary focus was being able to test existence as fast as possible. Find clocks in at almost 29million tests per second on the test data.
Behind that secondary uses are mapping and IndexOf clocks in 23million checks per second.
Next I wanted Add to be fairly snappy as well, it's a bit slower at 7.7million entries per second but seems acceptable. Since typical use would be populate and run repeated existence checks.
RemoveAt is particularly snappy.
Uses dynamically allocated strings. As with other versions this version maintains stable index values (at least until you delete an entry), so can be used to map.
My primary focus was being able to test existence as fast as possible. Find clocks in at almost 29million tests per second on the test data.
Behind that secondary uses are mapping and IndexOf clocks in 23million checks per second.
Next I wanted Add to be fairly snappy as well, it's a bit slower at 7.7million entries per second but seems acceptable. Since typical use would be populate and run repeated existence checks.
RemoveAt is particularly snappy.
Comment