public unsafe double[] GetPredict(int dataIdx) { long outLen = GetNumPredict(dataIdx); double[] res = new double[outLen]; fixed (double* ptr = res) { PInvokeException.Check(PInvoke.BoosterGetPredict(Handle, dataIdx, ref outLen, ptr), nameof(PInvoke.BoosterGetPredict)); } Debug.Assert(outLen == res.Length); return res; }