Yes, it is fine - I mean it definitelly works and there is nothing unsafe in assigning default value of
My concern is the design. The name of your method
AreValid suggest that it is just checking if objects meet specific criteria. You've mentioned that for all those objects that do not meet the criteria there is something being done on them. That doesn't seem to be the very greatest approach.
I would suggest you consider separating checking if objects meets condition and changing state of the objects. It will make your code simpler and easier to read and understand to others. Is changing object state really what you expect from the method named
AreValid? It would be quite a surprise for me if I found similar method in the code base.
The other thing is that you could use LiNQ and check for all the objects that do not meet the criteria and then perform some actions on those objects.