Есть библиотека ILGPU там есть метод который возвращает или ему нужен массив xy[,]? да и вообще кучу раз с таким сталкивался, что где-то как Bitmap нужен одномерный массив с доп инфой, где-то двумерный, а где-то классический [][], при этом с тем же смыслом что равен одномерному.
int[,] image=...;
buffer2D .CopyFromCPU(image ); // возвращает массив [,]
int[] _image= cast(image); // обычный метод копирования,
// самое ужасное что его уже раз 10 реализовывал, так как даже самая простая реализация
// быстрее встроенного метода Cast().ToArray в разы. который через итераторы,
// да еще и 3 раза 1 байт копирует с места на место, 1+1+ Σ(1/2^x)=3 раза. Что за траву курил разработчик там.
Bitmap bitmap=BitmapFromBytes(_image,w,h);
public static Bitmap BitmapFromBytes(int[] data, int width, int height)
{
}
Для чего вообще нужны двумерные массивы, они всегда в любых библиотеках только головную боль вызывают? Если всегда намного проще и быстрее самому их реализовывать, и не надо по 100 раз из одного в другой копировать, если начал так, потом другой библиотеке нужен одномерный массив, другой двумерный.
При этом N-мерный массив точно такой же как обычный, только где-то не помню на 12 байт размер объекта отличается. Существует ли способ, взять и в наглую грязно заменить объект,
вот в кучи допустим где int[,] находится, и как-то в кучи прям задать что вот с этого места начинается теперь int[], как-то пытался, но там типа сборка мусора сломятся может и ссылки ломаются на объекты. Может есть какой-то способ.