I tried like following.
MyList.RemoveAll(t => t.Name == \"ABS\");
MyList.RemoveAll(t => t.Name == \"XYZ\");
MyList.RemoveAll(t => t.Name == \"APO\")
You only need one lambda expression - the || goes within that:
MyList.RemoveAll(t => t.Name == "ABS" || t.Name == "XYZ" || t.Name == "APO");
In other words, "Given a t, I want to remove the element if t.Name is ABS, or if t.Name is XYZ, or if t.Name is APO."
There's only one "given a t" in there, which is what the t => part means, effectively.
A more extnsible approach would be to have a List for what to remove then
List<T> toRemove = ...
MyList.RemoveAll(t => toRemove.Contains(t.Name));
where T is a string in your example
or
var nameToRemove = new[]{"ABS", "XYZ", "APO"};
MyList.RemoveAll(t => nameToRemove.Contains(t.Name))
If it's not required at any time that there are multiple items in the list, you should consider using a HashSet instead of List