【问题标题】:How to get last 2 characters from integer如何从整数中获取最后2个字符
【发布时间】:2015-06-27 19:11:24
【问题描述】:

我需要从通过 linq 查询的整数字段中获取最后两个字符。

无法使用 Convert.ToString() 将整数字段转换为字符串,因为 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

【问题讨论】:

  • integer%100 上的东西?

标签: c#


【解决方案1】:

您可以像这样使用模运算符:

123 % 100 = 23
444 % 100 = 44
103 % 100 = 3 (needs to be padded)

然后你可以填充数字,对于以零开头的数字。

(myNumber % 100).ToString().PadLeft(2, '0')

【讨论】:

  • 我实际上需要从保存年份的 cloumn 中获取最后两个字符。这是我的代码 int ret = db.tblProductionVolumes.Where(x => x.Month.ToLower().Equals(month.Substring(0, 3).ToLower()) && month.Substring(month.Length - 2, 2).Equals(Equals(x.Year%100)) && x.BUId == namcID && x.Type.ToLower().Trim().Equals(Constants.OS_VANNING)).Single().Volume;返回 (int?)ret;
  • 当我使用 Module 获取最后两个字符时,我收到异常“无法将类型 'System.Int32' 转换为类型 'System.Object'。LINQ to Entities 仅支持转换 EDM 原语或枚举类型。”
  • 也许,正确的代码可能是:(number % 100).ToString().PadLeft(2, '0');
【解决方案2】:

你可以使用整数模和div

Integer i = 1337
i % 10 will give 7
i / 10 will give 133

【讨论】:

    【解决方案3】:

    对于 LINQ,这里是如何将整数转换为字符串:

    Problem with converting int to string in Linq to entities

    然后你可以使用正则表达式从字符串中取出最后两个字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-29
      • 1970-01-01
      • 2011-03-06
      • 2019-04-16
      • 2015-06-27
      • 1970-01-01
      • 2013-03-09
      • 2020-12-28
      相关资源
      最近更新 更多