I think a "Debug-Only" Assert is the best decision here as I think if a developer is using this overload they "should" know they need to make an array that's large enough..with a Debug.Assert at least theres a warning to the developer if they messed up.  The method with Math.min would be a relatively small performance hit in release mode, but a performance hit nonetheless, and this also could have the downside of a developer using a smaller array and not realizing it till its too late, I guess I'm worried about confusion with the Math.min method.  So my vote is for the Debug.Assert method.  Any objections?