[英]How to convert a string in lambda to decimal?
我有代码
myEntities db = new myEntities();
var query = from s in db.mytable select s;
if (!String.IsNullOrEmpty(str))
{
query = query.Where(p => p.total == str);
}
这里,“total”的类型是一个包含数字和字符的字符串,例如“14x56xz”。 我想从“total”字符串中获取数字部分(例如1456)并将其转换为十进制数,有时需要将其转换为负数,使代码如下所示:
query = query.Where(10 <= p => p.total <= 1000);
我写了一个class来处理它,但是我不知道如何在Linq中调用这个处理方法。
只需在 lambda 中解析即可。 例如:
query = query.Where(10 <= p => decimal.Parse(p.total) <= 1000m);
当然,如果有任何方法可以改进您的数据 model 以便将逻辑数字值存储为数字,那就更好了......
编辑:我认为您将很难将 LINQ 中的“14x56xz”转换为 1456 到实体。 您可能能够在数据库端做一些事情来使用转换和正则表达式等公开计算列,但我不确定您是否能够在 LINQ 中以适当转换的方式表达这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.