Динамический размер двумерного массива - PullRequest
0 голосов
/ 02 августа 2010

Я сейчас работаю над интернет-магазином. Для этого мне нужно создать двумерный массив для хранения товаров, перемещенных в корзину.

Корзина:

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

Но у меня возникают проблемы с отсутствием надлежащей поддержки двумерных массивов динамического размера. Или я просто ошибаюсь? Вы можете мне помочь?

Ответы [ 3 ]

1 голос
/ 02 августа 2010

Возможно, вы захотите создать некоторые объекты вместо использования массивов. Или даже структура , если у нее нет методов.

Вот пример структуры

/// <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;

Поменяйте местами пример Rectangle с Item, и вы уже в пути. Таким образом, в одном экземпляре каждой корзины несколько элементов, каждый из которых имеет свой собственный набор свойств.

0 голосов
/ 02 августа 2010

Не проще ли сохранить ShoppingSessionID для пользователя, связанного с таблицей, в которой хранится список товаров в корзине? Таким образом, все, что вам нужно хранить, это Session("ShoppingSessionID").

0 голосов
/ 02 августа 2010

Мне кажется, что ваша проблема может быть решена с помощью динамически изменяемого списка объектов.В этом случае вы захотите создать класс Item, а затем добавить в список Корзин новый объект Item для каждого нового элемента.

...