2015-02-10 95 views
-2

我收到這個類的錯誤消息。它說,不能將類型「字符」轉換爲「字符串」。c#:出現在foreach循環上的錯誤

這是主項目代碼:

protected void Page_Load(object sender, EventArgs e) 
     { 
      translate t = new translate(); 
      string txt = TextBox1.Text; 
      string[] split = txt.Split(new Char[] { ' ', ',', '.', ':', '\t' }); 

      foreach (string s in split) 
      { 

       if (s.Trim() != " ") 
        Label1.Text += s +"\n"; 
       t.makeWrd(s); 
      } 

     } 

,這是類代碼 類: 公共字符串[]字;

public string makeWrd(string word) 
    { 

     var d = new Dictionary<string, string>() 
     {{"blue","biru"}, 
     {"red","merah"}, 
     {"green","hijau"}, 
     {"purple","gadung"} 
     }; 
     foreach(string val in word) //<---the error appears here 
     { 
      string ja; 
      if(d.TryGetValue(val, out ja)) 
      { 
       return ja; 
      } 
     } 

    } 

任何人都可以幫助我嗎?

+2

你是什麼意思由'foreach(字符串val)'isnt'word'已經是一個單一的字符串? – chouaib 2015-02-10 07:34:37

+3

當你枚舉一個字符串:'(... in word)',那麼你會得到字符。 – 2015-02-10 07:34:46

回答

1

你迭代的每一個字符word。因此,你得到的錯誤。

foreach似乎並不在這裏有一個目的。嘗試刪除它。

public string makeWrd(string word) 
{ 

    var d = new Dictionary<string, string>() 
    {{"blue","biru"}, 
    {"red","merah"}, 
    {"green","hijau"}, 
    {"purple","gadung"} 
    }; 

    string ja; 
    if(d.TryGetValue(word, out ja)) 
    { 
     return ja; 
    } 

} 

此外,if (s.Trim()!= " ")永遠是true。你的意思是使用!string.IsNullOrWhiteSpace(s))

+0

@jenan:需要更多幫助? – 2015-02-10 09:07:32

+0

此外,如果(s.Trim()!=「「)!= string.IsNullOrWhiteSpace(S)) 用於以上程序中,我想在一個字符串數組,其將被髮送到類程序,其中,加鍵它將與字典中的鍵相比較,並打印字典值。 – jenan 2015-02-10 12:19:33