首页 新闻 会员 周边

linq 中 int 为啥可以==int ?

0
悬赏园豆:10 [已解决问题] 解决于 2015-01-30 18:26

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

chenhp的主页 chenhp | 初学一级 | 园豆:9
提问于:2015-01-30 17:10
< >
分享
最佳答案
0

因为是LINQ,你自己写个函数也可以的啊。

楼主表达不清楚,你是想说 正常情况下C#不支持 int类型和int?类型的比较==语句是吧?

LINQ的ExpressionVisitor里面相当的复杂,反正考虑到你说的这种情况就是了。

你就当自己写了一个函数SpecialEquals

可以这样用

int i=1

int? j=2

return specialEquals(i,j)

或者

return i.specialEquals(j)也行

收获园豆:7
爱编程的大叔 | 高人七级 |园豆:30839 | 2015-01-30 17:37

终于有个人懂起我的意思了,谢谢解答!

chenhp | 园豆:9 (初学一级) | 2015-01-30 18:11

@chenhp: ...谁告诉你c#int和int?没有默认的逻辑等于运算符?

真当写类库的人是傻逼啊.....

吴瑞祥 | 园豆:29449 (高人七级) | 2015-02-02 09:03
其他回答(3)
0

a是不是等于q 有什么问题吗?

收获园豆:1
Firen | 园豆:5385 (大侠五级) | 2015-01-30 17:33
0

为啥要出问题呢?

收获园豆:1
幻天芒 | 园豆:37175 (高人七级) | 2015-01-30 17:33
0

什么地方int不能==int?

收获园豆:1
吴瑞祥 | 园豆:29449 (高人七级) | 2015-01-30 17:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册