对linq中的字母数字数据执行不等式比较



需要linq查询帮助。我有一列包含字母数字数据,我想提取数字并进行数学比较。例如>,<等

所以数据应该是:JS20,MRR12,DEEN2等

我试着把它转换成Int,但失败了

    var TheData = (from p in db.data.Where(l => Convert.ToInt16(l.TextAndNumber) <= 10)
                  group p by p.Names into g
                  select g.Key).ToList();
    return Json(new { data = TheData });

试试这样的东西:

(from row in db.data
 let digits = new String(row.TextAndNumber.Where(Char.IsDigit).ToArray())
 let number = Int64.Parse(digits)
 where number < 10
 select row.Names
).Distinct();

在应用转换之前,需要从字符串中提取数字。

List<string> data = new List<string> { "JS20", "MRR112", "DEEN2" };
var TheData = data.Where(d => Convert.ToInt32(new string(d.Where(char.IsNumber).ToArray())) <= 10);

这将返回DEEN2。

最新更新