public ActionResult Index(int ? q)
{
List<int> array = new List<int>();
for (int i = 1; i <= 10;i++ )
{
array.Add(i);
}
IEnumerable<int> result = from a in array
where a == q
select a;
return View();
}
如上代码,where a == q这句为啥没出现问题呢?谢谢!.net版本4.0
因为是LINQ,你自己写个函数也可以的啊。
楼主表达不清楚,你是想说 正常情况下C#不支持 int类型和int?类型的比较==语句是吧?
LINQ的ExpressionVisitor里面相当的复杂,反正考虑到你说的这种情况就是了。
你就当自己写了一个函数SpecialEquals
可以这样用
int i=1
int? j=2
return specialEquals(i,j)
或者
return i.specialEquals(j)也行
终于有个人懂起我的意思了,谢谢解答!
@chenhp: ...谁告诉你c#int和int?没有默认的逻辑等于运算符?
真当写类库的人是傻逼啊.....
a是不是等于q 有什么问题吗?
为啥要出问题呢?
什么地方int不能==int?