Avatar billede koppelgaard Praktikant
12. maj 2007 - 11:19 Der er 6 kommentarer og
1 løsning

Remove i hashtable

Hej alle
Jeg har en 2 klasser
En kontaktklasse og en container til kontakt implementeret som et hashtable.
Jeg kan ikke få slet-metoden til at virke.
Slet-metoden skulle gerne slette et element i hashtablet med nøjlen som argument.
Nedenstånde kan pastes direkte ind i c#-editor.

Koppelgaard alias Michael


using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Kontakt k1 = new Kontakt("260164-1859","Michael","langvej 2","20601772","email@dk");
            Kontakt k2 = new Kontakt("260164-1815", "Jan", "langvej 3", "20601773", "email@com");
            ConKontakt liste = ConKontakt.Instance;
            liste.Add(k1);
            liste.Add(k2);
            liste.Slet("260164-1859");
            Console.WriteLine(liste);
            Console.ReadLine();
           
        }
    }



    public class ConKontakt
    {
        private static ConKontakt conKontakt;       
        private  Hashtable kontaktListe;

        private ConKontakt()
        {
            kontaktListe = new Hashtable();
           
        }

        public static ConKontakt Instance // retunere en conUdlån
        {
            get
            {
                lock (typeof(ConKontakt))
                {
                    if (conKontakt == null)
                        conKontakt = new ConKontakt();
                    return conKontakt;
                }
            }
        }

        public void Add(Kontakt k)

        {

            kontaktListe.Add(k.CprNr, k);
        }


        public void Slet(string cpr)
        {
            Kontakt k = (Kontakt)kontaktListe[cpr];
            this.kontaktListe.Remove(k);
        }       


        public override string ToString()
        {
            string str = "";
            foreach (DictionaryEntry entry in this.kontaktListe)   
                str = str + (Kontakt)entry.Value + "\n";

            return str;
        }
    }




    public class Kontakt
    {
        private string cprNr;
        private string navn;       
        private string adresse;
        private string tlf;
        private string email;

       

        //constructor
        public Kontakt(string cprNr, string navn, string adresse, string tlf, string email)
        {
            this.cprNr = cprNr;//bør lave cprKontrol
            this.navn = navn;
            this.adresse = adresse;
            this.tlf = tlf;
            this.email = email;

           
        }
        //properties
        public string CprNr
        {
            get { return cprNr; }
        }
        public string Navn
        {
            get { return navn; }
            set { navn = value; }
        }
        public string Adresse
        {
            get { return adresse; }
            set { adresse = value; }
        }
        public string Tlf
        {
            get { return tlf; }
            set { tlf = value; }
        }

        public string Email
        {
            get { return email; }
            set { email = value; }
        }

       
           



        public override string ToString()
        {
            string str = "CPR-Nr: " + cprNr + "\n" +
                "Navn: " + navn + "\n" +
                "Adresse: " + adresse + "\n" +
                "Tlf: " + tlf + "\n" +
                "Email: " + Email +
                "\n---------------------------------\n";
            return str;
        }
    }


}
Avatar billede plx Nybegynder
12. maj 2007 - 12:36 #1
public void Slet(string cpr)
{
    Kontakt k = (Kontakt)kontaktListe[cpr];
    this.kontaktListe.Remove(k);
}     

Du bruger ikke cpr som key, men objektet. Prøv sådan:

public void Slet(string cpr)
{
    this.kontaktListe.Remove(cpr);
}
Avatar billede bertelbrander Novice
12. maj 2007 - 12:37 #2
Hvis det er C# kode bør du nok spørge i C# kategorien:
http://www.eksperten.dk/spm/Programmering/C/

C# er hverken C eller C++, din kode er hverken C eller C++
Avatar billede koppelgaard Praktikant
12. maj 2007 - 13:57 #3
Tænkt at man kan være så dum  !!
Jeg havde læst argumentet "object key " som "object"
Vil du ikke have dine point plx ?

Og bertelbrander: Jeg fik vist i farten valgt forkert katagori
Avatar billede koppelgaard Praktikant
15. maj 2007 - 09:46 #4
For jeg et svar, så du kan få point bertelbrander ?
Avatar billede bertelbrander Novice
15. maj 2007 - 20:11 #5
Det er vist ikke mig der skal have point og jeg samler ikke på point.
Avatar billede koppelgaard Praktikant
16. maj 2007 - 14:13 #6
tak for din ærlighed
Men  plx vil måske ha' point ?
Avatar billede koppelgaard Praktikant
20. maj 2007 - 16:18 #7
Det vil han vist ikke, så lukker jeg
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester