Как создать динамический массив - PullRequest
1 голос
/ 28 ноября 2010

Какой лучший способ создать динамический массив для пользователя, чтобы добавить продукты в корзину и затем сохранить их в переменной сеанса, мне сказали, что сериализуемые массивы будут работать, однако при поиске решения в Интернете я наткнулся на ArrayList, который казался идеальным, но я не могу его реализовать.

У меня есть отдельный класс под названием Basket с:

ArrayList basketItems = new ArrayList();

Мне нужно иметь возможность выбрать продукт в виде сетки, используя ссылку select или, альтернативно, используя список просмотра и используя мою собственную кнопку, чтобы затем добавить bookID в массив, который затем будет сохранен в переменной сеанса и отправлено на страницу корзины, где bookID будет снова использоваться против таблицы SQL для вывода сведений о книге и т. д.

Ответы [ 2 ]

4 голосов
/ 28 ноября 2010

ArrayList - это обычное решение .NET 1.x для этой проблемы. Если вы используете .NET 2.0 или более позднюю версию, используйте простой общий список (List<T>).

Как это:

var myIDs = new List<int>();

Вы можете добавлять элементы с помощью метода Add.

myIDs.Add(2);
myIDs.Add(42);

Вы можете назначить ее переменной сеанса следующим образом:

Session["IdList"] = myIDs;

И вы можете восстановить его:

var stuff = (List<int>)Session["IdList"];

Надеюсь, это поможет

2 голосов
/ 28 ноября 2010

Если бы мы были в 2003 году, то да, ArrayList могли бы работать нормально, но сейчас я бы порекомендовал вам использовать универсальный List<T>, который будет безопасным для типов, и вы не сможете не нужно кастинг.

Таким образом, вы можете иметь следующую коллекцию:

List<int> productIds = new List<int>();
productIds.Add(1);
productIds.Add(2);
...