我收到此错误“无法将'Data'类型的对象强制转换为'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];
}
}
}
“values”是一个整数数组,p来自Data class
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;
}
}
答案 0 :(得分:3)
错误说的是什么。您必须在Data类中实现IConvertible,才能像这样使用它。
答案 1 :(得分:2)
您的意图不清楚您的代码。
p
对象中的 Data
。似乎您想要访问您在p
但你可以这样做
foreach (Data p in clusters[i])
{
for(int z=0; z<53;z++)
{
if (values[z] == p.X)
{
lray[z].BackColor = colorSet[i];
}
}
}
答案 2 :(得分:2)
Youe Data
类显然没有实现System.IConvertible
。因此,您可以这样做,也可以在if中执行其他检查。
class Data : System.IConvertible
{// implement necessary methods of System.IConvertible here
}
附注:=
是作业,您可能需要if (values[z] == ...)