Estoy usando C#, y es bastante molesto que no pueda enviar una matriz a partir de un cierto punto como en C++.Obtener matriz comenzando con desplazamiento
suponer este código:
int[] array = new int[32];
foobar (array + 4); //send array starting from the 4th place.
esto es una sintaxis extraña para C#, ya que no tenemos punteros utilizables, pero seguro que hay una manera de hacerlo? There's .Skip(), pero creo que produce una nueva matriz, que es algo que no me gusta.
¿Cuáles son mis opciones?
FYI, saltar no produce una nueva matriz. Produce un nuevo _array enumerator_ que se ha saltado las primeras n entradas. –
Lo que he hecho al portar el código C++ a C# que usa este modismo de punteros interiores para una matriz es implementar una estructura ArrayPtr inmutable que implemente operadores definidos por el usuario [] - +. La clase ArrayPtr maneja los detalles de descifrar cuáles son los desplazamientos correctos en la matriz real. –
¿Cómo determinaste que la creación de una nueva matriz implica demasiada sobrecarga? – nos