22. december 2006 - 00:55Der er
8 kommentarer og 1 løsning
String og hashtables
Jeg har scriptet hvor jeg bruger 4 forskellige hashtables og har lavet et script så jeg bare kan skrive "hadd(databasen,key,value)" også adder den til dabasen med den key og value. Scriptet ser sådan her ud: public void hadd(string database, string key, string value) { if (database == "nick") { hnick.Add(key, value); } if (database == "address") { haddress.Add(key, value); } if (database == "ident") { hident.Add(key, value); } if (database == "auth") { hauth.Add(key, value); } }
Kunne så godt tænke mig at vide om det er muligt at kunne gøre dette på en anden måde så som:
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Du kan smide de 4 hashtables i et fælles hashtable.
Hashtable mainHt = new Hashtable(); mainHt.Add("nick", new Hashtable()); mainHt.Add("address", new Hashtable()); mainHt.Add("ident", new Hashtable()); mainHt.Add("auth", new Hashtable());
Men synes det virker som en sær løsning du er i gang med. Hvorfor ikke blot lave et objekt til at holde alle oplysningerne og så smide hele objektet i en liste.
Hmm har ikke styr på det med objekter, har brugt ini før til det, så tænkte jeg jeg ville prøve at smide det over i hashtable, men der manglede jeg "section" som så er databasen ved hashtable, men det gav mgi så det lille problem med at man skal skrive navnet for at add.
og det objekt ved slet ikke hvad det er, noget du kunne vise et eks. på?
når jeg bruger ((Hashtable)mainHt[database]).Add(key, value);, hvordan læser jeg så fra hashtablen? den siger: Object reference not set to an instance of an object.
public void UsageTest() { HaddObj o = new HaddObj(); o.Nick = "Chili"; o.Address = "Bærvinget 7"; o.Ident = "Blubber"; o.Auth = "Admin";
Hadd( "key", o ); }
Sådan kan du fx benytte "objecter" til det... nu er det så ikke et "rigtigt" object i den forstand, da det jeg har lavet er et struct... det er lidt forskelligt hvad der er bedst...
md_craig, tak for hjælpen med "objecter". Men er jo lidt ude i samme problem som da jeg startede hvis jeg benytter denne metode, ud fra dette kan jeg ikke se hvordan jeg skal add flere personer, og hvis jeg kan, så kan jeg ikke se hvordan jeg skal kunne finde ud af hvem er hvem :S
Jeg har der for fået bikset dette sammen: public static Hashtable mainHt = new Hashtable(); public static void hAdd(string database, string key, string value) { if (mainHt.ContainsKey(database) == false) { mainHt.Add(database, new Hashtable()); } Hashtable db = (Hashtable)mainHt[database]; db.Add(key, value); } Som faktisk virker fuldstændig som jeg gerne vil have :P
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.