public static void SwapBytes(Array value, INT count) { var srcHdl = GCHandle.Alloc(value, GCHandleType.Pinned); try { unsafe { IntPtr srcIntPtr = srcHdl.AddrOfPinnedObject(); SwapBytes(srcIntPtr.ToPointer(), count * value.ElementByteSize()); } } finally { if (srcHdl.IsAllocated) { srcHdl.Free(); } } }
public static int ByteSize(this Array array) { return((array == null) ? 0 : array.Length *array.ElementByteSize()); }