Entwickler-Ecke
C# - Die Sprache - dictionary in einem dictionary
mike3000 - Do 01.01.09 18:55
Titel: dictionary in einem dictionary
Hi,
Ich bin neu in C# und habe eine kurze Frage zu einem hoffentlich kleinen Problem.
In meinem C# Progrämmchen benötige ich eine einfache Methode um auf Kunden zugreifen zu können, z.B. so:
allCustomers[44][Name] -> gibt mir den Namen des Kunden mit der Kunden-Nr. 44
allCustomers[30][Age] -> gibt mir das Alter des Kunde mit der Kunden-Nr. 30
Diese Zugriffsmethode habe ich mit verschachtelten Dictionaries gelöst:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| int customerNo = 44; string name = "Gates"; string prename = "Bill"; int age = 30; float revenue = 234.234F;
Dictionary<int, Dictionary<string, string>> allCustomers = new Dictionary<int, Dictionary<string, string>>(); Dictionary<string, string> customer = new Dictionary<string, string>();
allCustomers.Add(CustomerNo, customer.Add("Name", name); allCustomers.Add(CustomerNo, customer.Add("Prename ", prename ); allCustomers.Add(CustomerNo, customer.Add("Age", age.ToString()); allCustomers.Add(CustomerNo, customer.Add("Revenue ", revenueToString()); |
Das Problem ist nun, dass ich numerische Variablen wie "Age" oder "Revenue" jedesmall in einen String und zurück konvertieren muss.
Frage: Gibt es für eine solches Szenario eine bessere Lösung ?
Für jeden Hinweis bin ich sehr dankbar.
mike
Moderiert von
UGrohne: Beitragsformatierung überarbeitet.
Kha - Do 01.01.09 21:00
Zitat: |
allCustomers[44][Name] |
Welchen Vorteil versprichst du dir davon? Normalerweise benutzt man dafür eine
List<T> einer eigenen Customer-Klasse, womit der Zugriff so aussieht:
Was jaenicke eigentlich schon gesagt hat, nur:
Structs machen hier keinen Sinn, da sollte schon eine Klasse her.
mike3000 - Do 01.01.09 21:33
Kha, jaenicke: Vielen herzlichen Dank für die rasche Antwort :D
Hab nun eine Customer-Klasse erstellt. Die Customer-Objekte versorge ich nun einfach in einem Dictionary mit CustomerNo als Key, das funktioniert prima (mit Linq2SQL bräuchte ich sogar nicht mal mehr eine eigene Customer-Klasse)
wirklich cool ! :D
danke
mike
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!