I'd ditch the arrays frankly. I'd be inclined to use ADO.NET to read the file directly into a DataTable. Even using a StreamReader, you can still set up a DataTable manually and populate it. The next best alternative would be to use a HashTable keyed on the tool code. You could use two HashTables, one for description and one for price, or you could use a single HashTable where the value was an array, a collection, or a structure of your own definition.