Array.Copy would throw an exception if the destination wasn't large enough.
 I think that would be preferable to a debug-only assert or hiding the
mistake through use of Math.Min.​