While this is an interesting technique, I'd suggest that the C# script could easily be modified to do the actual copy/move, obviating the need for a Foreach loop. This would, in my opinion, be simpler and likely perform better (because no looping would be required).
Of course, there may be situations where more complex actions are required for each of the selected files, and this technique could be used there.
The absence of evidence is not evidence of absence
- Martin Rees
The absence of consumable DDL, sample data and desired results is, however, evidence of the absence of my response
- Phil Parkin