linq实现字符串数字比较大小

案列:数据库年龄设置为string,使用linq查询时,查询大于5岁的人员,发现11岁的人员查不出来,

经过一番思考,想到了一个解决方案:

people.where(p=>(p.Val.CompareTo(Val) >= 0 && p.Val.Length == Val.Length) || p.Val.Length > Val.Length);

先使用 CompareTo进行大小比较,再然后使用长度比较。只要数据库年龄字符串长度大于查询字符串长度,就视为符合条件。

等于比较 :

people.where(p=>p.Val.CompareTo(Val) = 0);

小于比较 :

people.where(p=>(p.Val.CompareTo(Val) < 0 && p.Val.Length == Val.Length) || p.Val.Length < Val.Length);

只适用于正数;

发现一个更简单的办法:

people.where(p=>Convert.ToDecimal(p.Val) > Convert.ToDecimal(val));

前提是数据库包括当前请求的值 只能为数字 否则会报错;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值