我想使用下面的代码将一个字符附加到一个长整数:
if (strArrIds[1].Contains("CO"))
{
long rdb2 = Convert.ToInt64(strArrIds[1].Substring(strArrIds[1].Length - 1));
assessmentEntity.RatingType = rdb2;
}
如果rdb2 = 5
,我想将L
附加到此值,例如rdb2 = 5L
。
有什么想法吗?提前谢谢。
答案 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;
}