It seems to me as you're reading the file again for each entry - could you cache the list?