Laden...

Was für eine Collection für Zuordnung von Telefonnummer zu Name?

Erstellt von Ploetzi vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.048 Views
Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 14 Jahren
Was für eine Collection für Zuordnung von Telefonnummer zu Name?

Hallo,
ich habe ein Programm , das soll telefnnummern und Staedte aus dem Internet laden.

Suche ich z.b. nach Maier so erhalte ich einen String den ich in einer Liste etc. speichern moechte.
d.h. wenn ich beim naechsten Mal suche, wird geschaut ob Maier bereits in der Liste existiert , wird dieser verwendet, ansonsten wird der Inhalt neu aus der Datenbank gelesen.

Jetzt haette ich gerne sowas wie:
Array[Maier]

Wie programmiere ich das? Nutze ich Arraylist, oder Array?

K
62 Beiträge seit 2009
vor 14 Jahren

Wenn jeder Name "wirklich" nur einmal vorkommen dürfte (was grade bei Namen wie Müller&Co doch sehr fraglich ist), könntest Du dafür einen Hashtable nehmen.

Da würde sich dann auch wie von dir gewünscht mit


HashtableName["Maier"]

drauf zugreifen lassen. Da es ja aber in einem Telefonbuch meist nicht nur einen Eintrag zu einem Nachnamen gibt, könntest Du den Nachnamen auch einfach als Key benuzen, und dort eine Liste mit Personen einfügen, die den Namen "Maier" enthalten. So könntest Du über den Nachnamen auf alle Personen zugreifen, die denselben Nachnamen haben (besser wäre aber wohl doch ein eindeutiger Key für den Hashtable zu nehmen).

297 Beiträge seit 2008
vor 14 Jahren

Du kannst auch ein Dictionary verwenden. Damit kannst du über einen Key auf den Wert zugreifen:

Dictionary<string, string> myDictionary = new Dictionary<string, string<();

myDictionary.Add("Meier", "01234 56789");

Console.WriteLine(myDictionary["Meier"]);

Ob da wirklich strings reinkommen oder etwas anderes, ist eine andere Frage, aber das Prinzip sollte dadruch klar werden.

There are 10 kind of people, those who understand binary and those who don't.

2.760 Beiträge seit 2006
vor 14 Jahren

Du kannst auch eine DataTable nehmen, da drin können die Name öfter vorkommen und du kannst trozdem schnell suchen und darauf zugreifen.

5.941 Beiträge seit 2005
vor 14 Jahren

Salute zusammen

Du kannst ein Dictionary<TKey, TValue> verwenden, als Key kannst du bzw. solltest du eine Kombination aus Name + X + Y nehmen, wobei X, Y bspw. für die Telefonnummer stehen könnte.

Ansonsten brauchts mehr Infos.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 14 Jahren

danke

U
1.578 Beiträge seit 2009
vor 14 Jahren

also ich wuerde

public class Contact
{
    public string Name { get; set; }
    public int Phone { get; set; }
}

public List<Contact> Contacts;

Dann kann jeder name beliebig oft vorkommen.
Sortieren und das alles kann man dann nach bedarf, und es lässt sich gut anzeigen wenn man es zum "blättern" braucht.