mylist = mylist.Distinct().ToList();
will remove duplicates and assign back to your list
if you need to keep the item based on last insert index, then
List<string> list = new List<string>{"dog","dog","cat","cat","mouse","mouse","cat","cat"};
list = list.Select((x,index)=> new {Val=x, Index=index}).GroupBy(y=>y.Val)
.Select(g=>new {g.Key, maxin= g.Max(x=>x.Index)}).OrderBy(x=>x.maxin).Select(x=>x.Key).ToList();