转换为LINQ中的int不起作用?

Xai*_*oft 1 c# linq-to-sql

以下查询抱怨不支持int转换.

var list = from d in data
           where d.Id == (int)GridView1.DataKeys[0].Value
           select d;
Run Code Online (Sandbox Code Playgroud)

它抱怨(int)GridView1.SelectedInex行告诉我不支持Int转换.我也尝试过Convert.ToInt32,但这也不起作用.

这个逻辑是否必须先计算在linq查询之上,或者是否有特殊的方法来执行它,如果没有,为什么它不支持它?

Mic*_*l G 7

为什么不先尝试将值解析为整数,在查询中不需要它.

Int id;
if (Int32.TryParse(ridView1.DataKeys[0].Value.ToString(), out id))
{
    var list = from d in data
               where d.Id == id
               select d;
}
Run Code Online (Sandbox Code Playgroud)

  • =需要==否则表达式将失败,因为它不是布尔值. (2认同)