I’m writing a class to store some kind of a table-structure.
Now each column in this table structure has a name, and an index.
Now each row in this column will be looped through, and the data will 90% of the cases be requested using the name of the column rather then the index of it.
So what’s a good data structure to store the columns, so that it can retrieve the index very quickly based upon the name. Right now I’m using a simple string[], but I wonder if there are faster ways to do this.
Parts of the code:
private string[] _columns;
private int _width;
private int getIndex(string columnName)
{
for (int i = 0; i < _width; i++)
{
if (_columns[i] == columnName) return i;
}
return -1;
}
The names of the columns will be constant after they’ve been set, and they’re mostly about 10-16 characters long.
Thanks in advance.
Use a
Dictionary<string,int>to store the names of the columns against their ID.Using your example (which misses how
_columnsis populated):