webForumDet fria alternativet

Tvådimentionell arraylist

10 svar · 557 visningar · startad av speedy

speedyMedlem sedan dec. 200283 inlägg
#1

Jag sitter här och försöker göra en av mina första applikationer i ASP.NET med VB.NET men har fått lite trubbel.

Jag håller på och gör en enkel webbshop och där tänkte jag använda en array som jag lägger i en sessionsvariabel för att hålla reda på "varukorgen" medans man handlar.

Jag hittade arraylist i min bok som verkade passa bra för detta ändamål men trotts att jag letat en massa så hittade jag ingen info om det går att skapa en tvådimentionell arraylist på något sätt. (jag behöver ju en tvådimintionell för att hålla reda på varuID, antal osv.)

Det enda jag kunde komma på vara att man kanske kunde skapa en arraylist och sedan för varje ny rad lägga in en array för varje post i "kundvagnen". Detta har jag inte fått att fungera tyvärr så jag e nu tillbaks där jag var när jag började :(

Min fråga:
Vet ni om det går att skapa tvådimentionella arraylists eller om man kan lägga in arrays i en arraylist. Hur gör man i så fall detta?

juventus1Medlem sedan dec. 2000399 inlägg
#2

Tror inte det går att skapa 2-dimensionella ArrayList. Men varför inte en vanlig int-array. Första dim. kan vara antal och den andra produktens id.

speedyMedlem sedan dec. 200283 inlägg
#3

Anledningen är att det med en arraylist är mkt enklare att lägga till, ta bort och redigera poster eftersom det redan finn funktioner för detta. Använder jag en vanlig array så måste jag skrivva dessa själv :)

icaaqMedlem sedan okt. 20005 273 inlägg
#4

Har du kollat in HashTable :OO

mvh icaaq

speedyMedlem sedan dec. 200283 inlägg
#5

Jo ja har kollat på hashtables men det verkar enligt de källor jag sett som att den bara är endimentionell tyvärr :/

PMedlem sedan jan. 20012 204 inlägg
#6

-

icaaqMedlem sedan okt. 20005 273 inlägg
#7

.NET Documention skrev:

Each element is a key-and-value pair stored in a DictionaryEntry object.

Jag tycker att det vore perfekt till en kundvagn :)

mvh icaaq

beamsteelMedlem sedan dec. 20024 inlägg
#8

kan du inte kolla hur microsoft och deras hejdukar har gjort gjort i deras exempel webbshop, IBuyspy? källkod finns att ladda ner på deras hemsida.

GrynetMedlem sedan maj 2001329 inlägg
#9

Gör ett objekt av dina uppgifter och spara dessa i arraylisten.

tex:


public class Vara{
  int ProduktID;
  int Antal;
  string Namn;
  string Kostnad;

  public Vara{int produktID, antal, string namn, string kostnad){
    :
    :
  }
}

//lägg till varan i din arraylist

arrayList.Add(new Vara(1,1,"Kalsonger","50"));

Så behöver du inte en två dim array eller rättare sagt en n när du behöver lägga till mer uppgifter.

Om du vill kan du använda en hashtable använd då tex produktId som nykel.

PatrikBMedlem sedan mars 20002 836 inlägg
#10

ett litet tillägg till grynet: Du "ska" göra en klass och spara i ngn form av collection.
I VB ser det ut så här, med Egenskaper istället för publika variabler:

Public Class BasketItem
	Private m_BasketItemID As Integer
	Private m_Name As String
	Private m_Amount As Integer
	Private m_Price As Decimal

	Public Property BasketItemID() As Integer
		Get
			Return m_BasketItemID
		End Get
		Set(ByVal Value As Integer)
			m_BasketItemID = Value
		End Set
	End Property

	Public Property Name() As String
		Get
			Return m_Name
		End Get
		Set(ByVal Value As String)
			m_Name = Value
		End Set
	End Property

	Public Property Amount() As Integer
		Get
			Return m_Amount
		End Get
		Set(ByVal Value As Integer)
			m_Amount = Value
		End Set
	End Property

	Public Property Price() As Decimal
		Get
			Return m_Price
		End Get
		Set(ByVal Value As Decimal)
			m_Price = Value
		End Set
	End Property

End Class

Själv försöker jag att använda så få publika variabler som möjligt och använder istället publika egenskaper.

Du ska oxå skapa en klass för själva varukorgen.
Du kan inte tänka "gamla asp" utan du MÅSTE lära dig att tänka på ett helt annat sätt i dotNET. Mitt råd är att du antingen skaffar dig ett par böcker om oo-programmering eller går en kurs i ämnet.

cya,
PatrikB

speedyMedlem sedan dec. 200283 inlägg
#11

Jag har lagt upp det enligt PatriktB:s metod och kan nu skapa instanser av den klassen när jag klickar på "köp knappen".

Problemet jag har nu är att när jag sedan lägger min arraylist med objekt i en session så kan jag inte läsa in den igen.

Jag har suttit och stirrat på detta en stund så jag tänkte att ngn kanske kan säga vad jag gör för fel :r

Ett exempel på hur jag gör ungefär:


ArrayList = session("spara")

'massa kod som skapar objektet

ArrayList.add(mittObjektNamn)

Session("spara") = ArrayList
137 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)