Actualmente estoy usando Array.Copy para cambiar una matriz como por ejemplo:¿Array.Copy es seguro cuando la fuente y el destino son la misma matriz?
Array.Copy(array, 0, array, 1, array.Length - 1);
Es notable rápido que utilizar un bucle. Sé que funciones similares en otros lenguajes (por ejemplo, memcpy) no están definidas o algunas veces se rompen cuando el compilador se vuelve demasiado agresivo. ¿Es razonable considerar esto seguro en .NET?
Esto se debe a que la función de base que se utiliza es memmove, y permite superposiciones de memoria. – Rahly