我有一个数据行,其中一列中有一个整数。但是,以下代码不会评估为true。我很难理解为什么。我错过了什么?
foreach (DataRow dr in dataset.Tables[0].Rows)
{
//this evaluates as false, even when I have a valid castable INT value in the column (as an object).
if (dr[3] is int)
{
if (Convert.ToInt32(dr[3]) == 3)
{
//do something with row
}
else if (Convert.ToInt32(dr[3]) == 4)
{
//do someting else with row
}
}
}
答案 0 :(得分:3)
正如其他人所说,你可能有一个字符串可以转换到一个int,但不会转换为int。
试试这个:
int val;
if (Int32.TryParse(dr[3].ToString(), out val)) {