Ausgabe von Wörterzählung mittels Klassen



  • Also ich sollte nun die Aufgabe aus dem Thread zuvor mittels Klassen machen.
    Alles funktioniert einwandfrei nur die Ausgabe ergibt nicht das gewünschte, da ich nciht weiß, welche Variablen ich ihm übergeben muss:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    
    public class WortElement
    {
        public string Wort;
        public int Anzahl;
    }
    
    public class Dateiausgabe
    {
        public static void Main()
        {
            StreamReader rd = new StreamReader("d:\\heinemann\\Test.txt");
            string line;
    
            Dictionary<string, WortElement> zaehler = new Dictionary<string, WortElement>();
    
            while ((line = rd.ReadLine()) != null)
            {
                string[] words = line.Split(' ', ',', '.', '?', '!', ':', ';', '-');
    
                foreach (string wort in words)
                {
                    string klwort = wort.ToLower();
    
                    if (wort != "")
                    {
                        if (!zaehler.ContainsKey(klwort))
                        {
                            WortElement ele = new WortElement();
                            ele.Wort = wort;
                            ele.Anzahl = 1;
    
                            zaehler[klwort] = ele;
                        }
                        else
                        {
                            WortElement ele = zaehler[klwort];
                            ele.Anzahl = ele.Anzahl + 1;
                        }
                    }
                }
            }
            rd.Close();
    
            List<WortElement> liste = new List<WortElement>();
    
            foreach (string wort in zaehler.Keys)
            {
                WortElement ele = zaehler[wort];
    
                liste.Add(ele);
            }
            Console.ReadLine();
    
            Console.WriteLine("Ausgabe:\n");
    
            foreach (string wort in zaehler.Keys)
            {
                Console.WriteLine(" {0} {1}", zaehler, wort);
            }
        }
    }
    


  • console.ReadLine();
    

    gehört natürlich hinter

    console.WriteLine();
    


  • foreach (string ele in zaehler.Keys)
            {
                Console.WriteLine(" {0} {1}", ele, zaehler[wort]);
            }
    

    Wenn ich das so mache, fehlt mir eine Zuweisung für wort.

    foreach (string ele in zaehler.Keys)
            {
                Console.WriteLine(" {0}", ele;
            }
    

    Gibt das geforderte raus, nämlich die Wörter.



  • foreach(string wort in zaehler.Keys)
    {
        Console.WriteLine("{0} {1}", wort, zaehler[wort].Anzahl);
    }
    

    wort sollte klar sein. Mit zaehler[wort] kriegst du aus dem Dictionary ein WortElement-Objekt zurück, woraufhin du auf die Eigenschaft Anzahl aus der Klasse zugreifen kannst.


Log in to reply