The disadvantage of the current approach of course is, that it is performing a linear searching per lookup of id->string.

>I think the advantage is easy (a little) to read, add or delete an item.

I don't think it is any less readable, in fact the reverse.. there is less code involved.

>For example, if we want to add "ABC" after "ABB", we may find idABB inside the mapEnums and add idABC/"ABC" after that. Otherwise, we may need to cound the position.

Not sure what u mean. New id's would be added to end of enum list, before a 'last id', and the corresponding string would be set into string attay , i.e. idStr[newid] = "newstring".
We do similar elsewhere.