2012-10-09 51 views
2

我得到此錯誤「無法投入類型'數據'的對象鍵入'System.IConvertible'。」 在我的代碼無法投入「數據」類型的對象鍵入「System.IConvertible」

foreach (Data p in clusters[i]) 
{ 
    for(int z=0; z<53;z++) 
    { 
     if (values[z] = Convert.ToInt32(p)) 
     { 
     lray[z].BackColor = colorSet[i]; 
     } 
    } 
    } 

「價值觀」是一個整數數組,p是數據類

class Data 
    { 

     public int X, ClusterId; 
     public Data(int x) 
     { 
      this.X = x; 
     } 
     public override string ToString() 
     { 
      return String.Format("({0})", X); 
     } 
     public static int DistanceSquared(Data p1, Data p2) 
     { 
      int diffX = p2.X - p1.X; 
      return diffX * diffX; 
     } 
    } 
+4

是'if'聲明'值的條件[Z] = Convert.ToInt32(P)'錯字?應該是比較運算符'==' – Neverever

回答

2

你的意圖是不是從你的代碼清晰。

pData的對象中。看來你要訪問已保存P中

的會員X的數據,但你可以做這樣的

foreach (Data p in clusters[i]) 
{ 
    for(int z=0; z<53;z++) 
    { 
     if (values[z] == p.X) 
     { 
     lray[z].BackColor = colorSet[i]; 
     } 
    } 
    } 
+0

謝謝巴迪..你真棒.. – user1375481

2

又餓Data類顯然沒有實現System.IConvertible。所以你可以這樣做,或者在你的if中執行其他檢查。

class Data : System.IConvertible 
{// implement necessary methods of System.IConvertible here 
} 

旁註:=是分配,則可能意味着if (values[z] == ...)

相關問題