我需要通过linq查询从整数字段中获取最后两个字符。
无法使用Convert.ToString()将整数字段转换为String,因为LINQ不支持ToString()。
任何帮助?
int ret = db.tblProductionVolumes.Where(x => x.Month.ToLower().Equals(month.Substring(0, 3).ToLower()) &&
month.Substring(month.Length - 2, 2).Equals(x.Year%100) &&
x.BUId == namcID &&
x.Type.ToLower().Trim().Equals(Constants.OS_VANNING)).Single().Volume;
return (int?)ret
答案 0 :(得分:16)
您可以使用模数运算符:
123 % 100 = 23
444 % 100 = 44
103 % 100 = 3 (needs to be padded)
然后你可以填写数字,以数字开头为零。
(myNumber % 100).PadLeft(2, '0')
答案 1 :(得分:4)
您可以使用整数模数和div
Integer i = 1337
i % 10 will give 7
i / 10 will give 133
答案 2 :(得分:2)
对于LINQ,这里是如何将整数转换为字符串:
Problem with converting int to string in Linq to entities
然后你可以使用正则表达式从字符串中取出最后两个字符。