2017-08-28 59 views
-1

我有代碼,以重複字計數文件取的話重複計數文件

static void Main() 
    { 
     StreamReader f = new StreamReader(@"d:\C#\text.txt"); 
     string s = f.ReadToEnd(); 
     char[] separators = { };//here is symbols 
     List<string> words = new List<string>(s.Split(separators)); 
     Dictionary<string, int> map = new Dictionary<string, int>(); 
     foreach (string w in words) 
      if (map.ContainsKey(w)) map[w]++; else map[w] = 1; 
     foreach (string w in map.Keys) 
      Console.WriteLine("{0}\t{l}", w.map[w]); 
    } 

但該行Console.WriteLine("{0}\t{l}", w.map[w]);在我有這樣的錯誤。

錯誤CS1061「串」不包含「地圖」的定義,並沒有擴展方法「地圖」接受型「字符串」的第一個參數可以發現

我怎樣才能解決這個問題錯誤?

+0

你覺得呢'w.map [W]'是幹什麼的? – litelite

+0

顯示值@ litelite –

+2

不,它試圖在'w'上調用一個名爲'map'的方法,因爲你在它們之間放了一個'.'。你有一個錯字。用','替換'w'和'map'之間的'.'。 – litelite

回答

1

如果我undertood你想要的東西,這將幫助:

List<string> words = new List<string>() { "c#", "html", "web service", "c#", "c#" }; 

Dictionary<string, int> map = new Dictionary<string, int>(); 

foreach (string w in words) 
{ 
    if (map.ContainsKey(w)) 
    { 
     map[w] = map[w]+1; 
    } 
    else 
    { 
     map[w] = 1; 
    } 
} 

//to iterate through Dictionary<string, int> use this instead 
foreach (KeyValuePair<string, int> entry in map) 
{ 
    Console.WriteLine($"{entry.Key}\t{entry.Value}"); 
}