Could there be a .ToDoubleArray methods in the Mesh.Vertices?

Mesh msh = .......; // Some mesh
using var meshRawData = msh.GetUnsafeLock();
var ptrToP3d = meshRawData.VertexPoint3dArray(out var verticeCnt);
...

But pay attention ptrToP3d is a Point3d* rather than Point3d[]. You probably want to memcpy later.

Pay attention on what you want to do here. Raw memory manipulation is quite dangerous in C# and may be slow than expected. I’d recommend C++/CLI if you are unfamliar with C#.