Wyciągnięcie int'a z dictionary

0

Mam sobie taki programik zliczający ilość znaków w pliku (każdy z osobna i wszystkie razem)

 int count = 0;
            Dictionary<char, int> dict = new Dictionary<char, int>();
            foreach (char c in File.ReadAllText(@"C:\plik.txt"))
            {
                if (dict.ContainsKey(c))
                {
                    dict[c]++;
                    count++;                    
                }
                else
                {
                    dict.Add(c, 1);
                    count++;
                }           
            }
            foreach (KeyValuePair<char, int> kvp in dict)
                Console.WriteLine("{0}, {1}", kvp.Key, kvp.Value);

Muszę teraz liczbę każdego znaku podzielić przez liczbę wszystkich znaków, pytanie jak wyciągnąć liczbę każdego znaku do tego dzielenia - czyli jak kvp.Value wyciągnąć do dzielenia.

1

Rozumiem że wg ciebie nie warto napisać co to za język? :D
Zresztą przecież wyciągnąłeś sobie te wartości tam w pętli poniżej, czego ci jeszcze trzeba? o_O

1

File.ReadAllText(@"C:\plik.txt") - a jak plik będzie miał 10GB to też będziesz całą jego zawartość ładował do pamięci? Nie lepiej użyć strumieni i czytać np. po jednej linijce?

@spin2015 http://ideone.com/kHQY1a

W ogóle bez sensu liczysz wszystkie znaki kiedy możesz skorzystać z własności Length dla stringa, do którego przecież pobierasz cały plik.

0

Ok wyciągam kvp.Value, ale przy próbie takiego zapisu

 wynik = kvp.Value / count;

podkreśla kvp

0

Bo coś źle robisz. Co mamy wnioskować po tej jednej linijce? Przeklej cały kod.

0

dobra rozwiazalem swoj problem, dzieki za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0