Karl-Heinz wrote: It doesn´t make sense to use "extension methods" to enhance "self" written classes.
If you have DTO you can extend it with your extension methods.
You could add this functionality to the class itself, but then it wouldn't be a DTO anymore.
Some additional things to consider:
Finding the right (existing) functions was always a difficult task. I know for sure I have made my own functions, discovering equivalent functionality in the runtime of VO, just because I didn't knew it existed or how to find it.
With an extension method, you type the . or : after the object and intellisense gives you the list of known methods.
Naming functions is also (with no overloading) a Hungarian task. Aadd, the first A just to denote it is a function associated to an array.
With an extension method it is just an Add(...)
If you don't think the functionality can be an extension method, you probably must re-evaluatie it and see, how to cut it into pieces, create another type of class (like a provider, formatter, e.g.).
How many times have you written a function, just because you need something, and just put all you needed in one function, not thinking about the content etc? (I have done that a lot...)
Thinking in classes and methods makes you think better about the SOLID principles.
That's why I prefer methods.