2012-07-03 214 views
-3

可能重複:
How can I convert String to Int?如何將字符串轉換爲int?

public List<int> GetListIntKey(int keys) 
{ 
     int j; 
     List<int> t; 
     t = new List<int>(); 
     int i; 
     for (i = 0; ; i++) 
     { 
      j = GetKey((keys + i).ToString()); 
      if (j == null) 
      { 
       break; 
      } 
      else 
      { 
       t.Add(j); 
      } 
     } 
     if (t.Count == 0) 
      return null; 
     else 
      return t; 
} 

的問題是上線:

j = GetKey((keys + i).ToString()); 

我收到提示說:

無法隱式轉換類型「字符串」到「廉政」

現在GetKey功能是字符串類型:

public string GetKey(string key) 
{ 
} 

我該怎麼辦?

+0

此問題詢問有關將int轉換爲字符串的問題,但您已經想清楚了,並且該錯誤消息是關於將字符串轉換爲int的。 – hvd

+3

請修改您的問題並更正其標題。問題是關於字符串到整數轉換,而不是整數到字符串。 – daniloquio

+1

我喜歡大多數正確的答案是downvoted。 – jrummell

回答

2

您的信息getKey的結果類型爲字符串連接第j個變量聲明INT

的解決方案是:

j = Convert.ToInt32(GetKey((keys + i).ToString())); 

我希望這是解決你的問題。

3

試試這個:

j = Int32.Parse(GetKey((keys + i).ToString())); 

如果該值不是有效的整數它會拋出異常。

另一種是TryParse,如果轉換不成功返回boolean:

j = 0; 

Int32.TryParse(GetKey((keys + i).ToString()), out j); 
// this returns false when the value is not a valid integer. 
5

的問題是,「J」是一個int,且將其分配給信息getKey的回報。使「j」成爲一個字符串,或將GetKey的返回類型更改爲int。

-1
What should i do ? 

你一切都錯了。閱讀關於值類型和引用類型。

錯誤:

  1. 錯誤是Cannot implicitly convert type 'string' to 'int'。隱含的含義是獲得一個不能轉換爲int的字符串。 GetKeys返回字符串,您試圖將其分配給整數j

  2. 你的j是整數。如何檢查null。什麼時候可以將一個值類型爲空?

使用此

public List<int> GetListIntKey(int keys) 
{ 
    int j = 0; 
    List<int> t = new List<int>(); 
    for (int i = 0; ; i++) 
    { 
     string s = GetKey((keys + i).ToString()); 

     if (Int.TryParse(s, out j)) 
      break; 
     else 
      t.Add(j); 
    } 

    if (t.Count == 0) 
     return null; 
    else 
     return t; 
} 
+5

「學習一些編程」是不必要的和粗魯的。我們都從某個地方開始,我們需要的最後一件事就是讓我們在尋求幫助時輕視我們。 – DarLom

+0

@DarvisLombardo:更正。採取的點。反向Downvote。 –

+0

@daniloquio:我想要+10。但我不會那麼做。我當前的限制爲200天。 –

-1

你必須使用一個exppicit類型轉換。

使用

int i = Convert.ToInt32(aString); 

轉換。

+0

這是Java,而不是C#。 – hvd

+0

1.他想將int轉換爲字符串2.這是一個C#問題。 – Femaref

+2

@Femaref re。 1:不,他沒有。問題標題是錯誤的,錯誤信息是關於字符串到整數轉換。 – hvd

1

您正在接收錯誤,因爲GetKey返回一個字符串,並且您試圖將返回對象指定給j,並將其聲明爲int。您需要按照alfonso的建議進行操作,並將返回值轉換爲int。您還可以使用:

j = Convert.ToInt32(GetKey((keys+i).ToString())); 
1

嘗試改進代碼,看看這個:

public List<int> GetListIntKey(int keys) 
{ 
    var t = new List<int>(); 

    for (int i = 0; ; i++) 
    { 
     var j = GetKey((keys + i).ToString()); 
     int n; 
     // check if it's possible to convert a number, because j is a string. 
     if (int.TryParse(j, out n)) 
      // if it works, add on the list 
      t.Add(n); 
     else //otherwise it is not a number, null, empty, etc... 
      break; 
    } 
    return t.Count == 0 ? null : t; 
} 

我希望它幫你! :)