The "best" algorithm/data structure to use depends on the usage patterns. Is the list mostly sorted already? Would it be resorted in a different order? Are you mostly adding, removing, or searching...