In .NET Core 2.1 and later, you can use MemoryMarshal.CreateSpan<T>(T, Int32) method to create a linear Span from a multidimensional array, then use Span<T>.CopyTo(Span<T>) method to copy the required data into or from the multidimensional array.
object[,] tableOfObjects = new object[3, 3]
{
{ 0, 1, 2 },
{ 3, 4, 5 },
{ 6, 7, 8 }
};
Span<object> tableSpan = MemoryMarshal.CreateSpan(ref tableOfObjects[0, 0], tableOfObjects.Length);
// tableSpan is linear here: [0, 1, 2, 3, 4, 5, 6, 7, 8]
object[] sourceRow = [9, 10, 11];
sourceRow.AsSpan().CopyTo(tableSpan.Slice(0, sourceRow.Length));
// tableOfObjects is now:
// {
// { 9, 10, 11 },
// { 3, 4, 5 },
// { 6, 7, 8 }
// }
object[] destinationRow = new object[4];
tableSpan.Slice(1, destinationRow.Length).CopyTo(destinationRow);
// destinationRowOfObjects is now: [10, 11, 3, 4]