-1

需要有关 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 });
4

2 回答 2

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();
于 2013-08-14T18:34:36.600 回答
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。

于 2013-08-14T18:41:21.207 回答