如何在长整数中追加字符?

时间:2014-01-23 10:17:23

标签: c# long-integer

我想使用下面的代码将一个字符附加到一个长整数:

if (strArrIds[1].Contains("CO"))
{
    long rdb2 = Convert.ToInt64(strArrIds[1].Substring(strArrIds[1].Length - 1));
    assessmentEntity.RatingType = rdb2;
}

如果rdb2 = 5,我想将L附加到此值,例如rdb2 = 5L

有什么想法吗?提前谢谢。

3 个答案:

答案 0 :(得分:1)

您可以使用Long.Parse代替Convert.ToInt64来获取漫长的内容,而您不需要附加L来使其更长

if (strArrIds[1].Contains("CO"))
{
    long rdb2 = long.Parse(strArrIds[1].Substring(strArrIds[1].Length - 1));
    assessmentEntity.RatingType = rdb2;
}

答案 1 :(得分:0)

如果您正在处理大量这些内容,并且此项目将用于进一步处理,您可以考虑将其转换为可能更易于管理的类。这样您还可以更轻松地自定义评分。

我想也许工厂可能也很好,也可以实例化并返回您的评估实体。然后,您可以将依赖注入策略用于任何其他功能。

如果没有更多的背景,有点难以分辨出你的需求。

如果这是一次性的,我会重构

assessmentEntity.RatingType = strArrIds[1].Contains("CO") ? 
          String.Concat(long.Parse(strArrIds[1].Substring(strArrIds[1].Length - 1)).ToString(), "L") :
          "0N";

假设“0N”是其他一些默认评级..

答案 2 :(得分:0)

此处您不需要L。这仅适用于出现在C#源中的long类型的文字。

您可以执行以下操作:

string str1 = strArrIds[1];
if (str1.Contains("CO"))
{
    long rdb2 = str1[str1.Length - 1] - '0';
    if (rdb2 < 0L || rdb2 > 9L)
      throw new InvalidOperationException("Unexpected rdb2 value from str1=" + str1);
    assessmentEntity.RatingType = rdb2;
}