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

时间:2013-08-14 18:28:58

标签: c# asp.net-mvc 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 });

2 个答案:

答案 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。