动态大小二维数组

时间:2010-08-02 14:39:08

标签: arrays session asp-classic vbscript multidimensional-array

我目前正在网店工作。为此,我需要制作一个二维数组来存储移动到购物车的物品。

购物车:

Cart = Session("Cart")
Items = Session("Items")

当物品移动到购物车时:

Items = Items + 1

Cart(1,Items) = Items
Cart(2,Items) = rs("id")
Cart(3,Items) = Request("attr")
Cart(4,Items) = rs("name")
Cart(5,Items) = rs("price")
Cart(6,Items) = 1

最后:

Session("Cart") = Cart
Session("Items") = Items

但是我遇到了asp缺乏对动态大小的二维数组的适当支持的问题。或者我只是采取了错误的方式?你能救我吗?

3 个答案:

答案 0 :(得分:1)

您可能想要创建一些对象而不是使用数组。或者甚至是structure,如果它没有方法。

这是一个struct

的expamle
/// <summary>
/// Custom struct type, representing a rectangular shape
/// </summary>
struct Rectangle
{
    /// <summary>
    /// Backing Store for Width
    /// </summary>
    private int m_width;

    /// <summary>
    /// Width of rectangle
    /// </summary>
    public int Width 
    {
        get
        {
            return m_width;
        }
        set
        {
            m_width = value;
        }
    }

    /// <summary>
    /// Backing store for Height
    /// </summary>
    private int m_height;

    /// <summary>
    /// Height of rectangle
    /// </summary>
    public int Height
    {
        get
        {
            return m_height;
        }
        set
        {
            m_height = value;
        }
    }
}

所以现在你可以:

Cart[0] = new Rectangle{Width = 1,Height = 3};

Rectangle myRec = new Rectangle();
myRec.Height = 3;
myRec.Width = 1;
Cart[0] = myRec;

使用Item交换Rectangle示例,您应该在路上。 这样,每个Cart的单个实例就有多个Items,每个都有自己的属性集。

答案 1 :(得分:0)

在我看来,您的问题可以通过动态大小的项目对象列表来解决。在这种情况下,您需要创建一个Item类,然后为Cart列表添加每个新项的新Item对象。

答案 2 :(得分:0)

为与存储购物车中商品列表的表相关的用户存储ShoppingSessionID会不会更简单?这样你只需存储Session("ShoppingSessionID")