public static void Set <T>(this T[,,] array, Index3D index, T value)
    {
        Contracts.Requires.That(array != null);
        Contracts.Requires.That(array.IsIndexValid(index));

        array[index.X, index.Y, index.Z] = value;
    }
    public static T Get <T>(this T[,,] array, Index3D index)
    {
        Contracts.Requires.That(array != null);
        Contracts.Requires.That(array.IsIndexValid(index));

        return(array[index.X, index.Y, index.Z]);
    }