需要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 });
答案 0 :(得分:0)
尝试这样的事情:
(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();
答案 1 :(得分:0)
在应用转换之前,您需要从字符串中提取数字。
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。