If the lines are unique, go to Dictionary<string, T>. If they are not guaranteed to be unique, the dictionary will not be suitable, and you may want to use a list Tuple<string, T>(C # 4) or, perhaps, a list KeyValuePair<string, T>that will be very similar to the dictionary, except obviously it does not guarantee uniqueness and preserves order when the dictionary does not will definitely do it.
Dictionary<string, T>> yourDictionary; // or
List<Tuple<string, T>> yourCollection; // or
List<KeyValuePair<string, T>> yourCollection;
, , .