webForumDet fria alternativet

Få fram value ur HashTable

.NET

4 svar · 246 visningar · startad av icaaq

Medlem sedan okt. 20005 273 inlägg
Frågan#1

Jag skulle vilja få ut ett speciellt value från en hashtable typ så här

[red]
int värde = ht[index][värde]
[/red]

men detta funkar ju inte .......hur ska jag få fram värdet från detta index?

Mvh icaaq

Medlem sedan mars 20002 836 inlägg
#2

Om du kikar i SDK'n så ser du att man lägger till med:

ht.Add("Key", "Value")

För att få fram Value:

int värde = ht.Item("Key")

cya,
/PatrikB

Medlem sedan okt. 20005 273 inlägg
#3

Jag får inte din kod att fungera....nu har jag

[red]
public void BoundData(object sender, DataGridItemEventArgs e)
		{
			Tabell t = new Tabell();
			Hashtable ht = t.Rule(Convert.ToInt32(HttpContext.Current.Request.QueryString["id"]));
			switch(e.Item.ItemType)
			{
				case ListItemType.Item:
				case ListItemType.AlternatingItem:
					if(ht.ContainsKey(Convert.ToString((e.Item.ItemIndex + 1))))
					{
						[b]if(Convert.ToInt16(ht[(e.Item.ItemIndex + 1)]) == 0)[/b]
						{							
							e.Item.Cells[0].Attributes.Add("style", "border-bottom: solid 1px #000;");
						}
						else
						{
							e.Item.Cells[0].Attributes.Add("style", "border-bottom: dotted 1px #000;");
						}

					}
[/red]

typ.....men hur ska jag få den fram värdet ur hashtablen där hashtablensindex är lika med e.Item.ItemIndex

Mvh icaaq

Medlem sedan maj 20012 812 inlägg
#4

Det finns inget INDEX på en hashtable. Alltså kan man inte skriva HashTable[1] eftersom det inte är säkert att det som du tror finns på position 1 finns där.

Det hela beror på att man inte lagrar datan som man spara i en långlista, utan istället sorterar in datan som kommer in med hjälp av nycklen.

Så om du vill lagra ett objekt som innehåller information om en person. Så kanske man tycker att personnummer är en jättebra nyckelt. Då lagrar man objectet i en hashtabel och använder personenummret som nyckel.

myHashTable.Add(oPerson.Personnummer, oPerson);

Den information kommer du bara åt om du använder dig av din nyckel. Du skulle ju kunna använda indexet som en nyckel. Alltså e.Item.ItemIndex är nyckle i din HashTable. Du kan även göra om din HashTable till en Array, men som sagt innan. Det betyder inte att första posten i Arrayn är den första posten du lagt in.

- M

Medlem sedan okt. 20005 273 inlägg
#5

ok....tack för ditt svar det gjorde det hela lite klarare....och jag löste detta problem på ett annat sätt med en Sql fråga på varje item istället

Mvh icaaq

282 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
156 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)