I have a class containing several properties (all are strings if it makes any difference).
I also have a list, which contains many different instances of the class.
A small word of caution, if "do some stuff" means updating the value of the actual property that you visit AND if there is a struct type property along the path from root object to the visited property, the change you made on the property will not be reflected on the root object.