Session com ArrayList 

Tema: Programação (Asp.Net + C#)
Nível: Básico

Boa noite para todos!
Hoje gostaria de compartilhar uma solução muito legal e útil, principalmente para aqueles que estão criando uma loja virtual.

O assunto que vêm a ser discutido, trata-se de como atribuir em uma Session um Array, onde contenha diversas informações. Bom, isso é muito útil, pois imagine você estando desenvolvendo uma loja virtual, logo precisará de um carrinho de compras onde irá armazenar as informações dos itens que o usuário está selecionando, sendo assim, não seria nada prático, bonito nem ao menos profissional, você sair criando um monte de Session, cada uma com deterninada informação.

Pensando nisso, tai uma bela alternativa, criar uma Session ‘pai’ onde armazene todas as informações que necessito, para assim ter meu carrinho de compra e fornecer ao usuário informações úteis sobre sua compra.
Então mâos na massa!

1) Primeiramente iremos criar um ArrayList (para quem não conhece, neste post não irei falar sobre as características do ArrayList):

ArrayList Meu_Array = new ArrayList();

2) Em seguida, vamos adicionar ao nosso ArrayList criado, duas posições (0,1) com os dados de um suposto TextBox do seu Form:

Meu_Array.Add(SuaTextBox1.Text);
Meu_Array.Add(SuaTextBox2.Text);

3) Logo após, iremos atribuir a uma Session o nosso ArrayList:

Session["Minha_Session"] = Meu_Array;

Feito isso, você já possui uma Session na qual possui um ArrayList armazenado.
Abaixo darei um exemplo somente para conferirmos o resultado disso tudo na tela (browser).

Meu_Array = (ArrayList)Session["Minha_Session"];

for (int i = 0; i <= Meu_Array.Count-1; i++){
     Response.Write(Meu_Array[i].ToString()+”<br>”);
}

Para aqueles que ainda não tem costume de lidar com Array’s, para acessarmos uma determinada posição deste nosso ArrayList (meu post), podemos fazer da seguinte maneira:

Meu_Array = (ArrayList)Session["Minha_Session"];
string Minha_Variavel = Meu_Array[1].ToString();

OBS: No mundo dos Array’s posição 0 significa posição 1, sendo assim, Meu_Array[0] não significa estar acessando o conteúdo na posição 0 e sim na posição 1.

Logo temos: ‘Minha_Variavel’ com o valor da ‘SuaTextBox2′.

Bom, espero que possa ser útil as informações compartilhadas. Dúvidas e sugestões são bem-vindas.
Forte abraço e até a próxima.