public void CopyToTest() { var q = UnsafeStack.Allocate <int>(10); for (int i = 0; i < 10; i++) { UnsafeStack.Push(q, i); } var arr = new int[10]; fixed(void *ptr = arr) { UnsafeStack.CopyTo <int>(q, ptr, 0); } int num = 10; for (int i = 0; i < 10; i++) { Assert.AreEqual(--num, arr[i]); } }
public void CopyTo(T[] array, int arrayIndex) { if (array == null) { throw new ArgumentNullException(nameof(array)); } if ((uint)arrayIndex > array.Length) { throw new ArgumentOutOfRangeException(nameof(arrayIndex)); } if (array.Length - arrayIndex < Count) { throw new ArgumentException("Insufficient space in the target location to copy the information."); } if (array.Length == 0) { return; fixed(void *ptr = array) UnsafeStack.CopyTo <T>(m_inner, ptr, arrayIndex); }