我需要一种基于内容识别记录类型的干净方法
本文关键字:类型 记录 识别 方法 于内容 一种 | 更新日期: 2023-09-27 18:19:42
我有八个字符的字符串,如下所示。最后一列中出现的零将这些标识为类型pr、pa、fo或it记录:
01020304
01020300
01020000
01000000
我已经编码了以下内容,但对我来说它看起来很笨拙。
if ( id.Substring(2) == "000000") {
// pr record
} else if ( id.Substring(4) == "0000") {
// pa record
} else if ( id.Substring(6) == "00") {
// fo record
} else {
// it record
}
有人能想出一种更干净的编码方式吗?
与现有内容没有太大区别,只是可读性更强一点。
const string PR = "000000";
const string PA = "0000";
const string FO = "00";
if (id.EndsWith(PR))
{
// pr record
}
else if(id.EndsWith(PA))
{
// pa record
}
else if (id.EndsWith(FO))
{
// fo record
}
else
{
// it record
}
通过value.TrimEnd('0').Length
?
测试字符串没有错:
- 子字符串可能会生成一个新的字符串对象
- C#中是否没有CCD_ 2
- 编写计算尾随零数的函数是相当容易的。然后你可以做
switch(trailingZeros(id)) { case 0: ... }
您可能想看看Filehelpers库——它有各种读取和处理记录的基础设施,包括确定不同记录类型的方法——请参阅"多记录"。
注意:主要的Filehelpers网站是基于这个库的2.0版本。公共存储库中存在更新的版本。无论哪种情况,我都建议获取该库的源代码,因为我还没有看到大量关于该库新开发的活动。