C# 解析数组

C# 解析数组,c#,C#,我需要解析一个数组或一个固定长度的字符,但可以有几乎任何字母或数字的组合。我的50位数组如下所示:NL1NAMEOFCO-B0321442211000100600000-A35499001 此阵列代表了我们产品中设置的广泛组合。我需要提取数组中的所有引用指示符。前3个字符表示特定型号NL1,后8个字符表示公司名称Ofco。“-”将始终位于同一位置。B(数字13)表示一些值等。此外,一些值由2位数字表示。数字20和21(存储值22)表示一些特定设置 现在你明白了。我可以使用以下代码解析数组并提取所

我需要解析一个数组或一个固定长度的字符,但可以有几乎任何字母或数字的组合。我的50位数组如下所示:NL1NAMEOFCO-B0321442211000100600000-A35499001

此阵列代表了我们产品中设置的广泛组合。我需要提取数组中的所有引用指示符。前3个字符表示特定型号NL1,后8个字符表示公司名称Ofco。“-”将始终位于同一位置。B(数字13)表示一些值等。此外,一些值由2位数字表示。数字20和21(存储值22)表示一些特定设置

现在你明白了。我可以使用以下代码解析数组并提取所需的值:

String Company = ConfigCode[3].ToString() +
                 ConfigCode[4].ToString() + 
                 ConfigCode[5].ToString() + 
                 ConfigCode[6].ToString() + 
                 ConfigCode[7].ToString() + 
                 ConfigCode[8].ToString() +
                 ConfigCode[9].ToString() +
                 ConfigCode[10].ToString();
这样做没有任何问题,但对我来说,应该有一种更简单的方法。我本以为下面的方法会奏效,但事实并非如此

String Company = ConfigCode[3..10].ToString();
有人能给我解释一下为什么它不起作用,还有什么更好的方法来提取我需要的信息


谢谢

我相信
String.Substring
方法就是您要寻找的。您要查找的重载方法的签名是:

public string Substring(
    int startIndex,
    int length
)

其文档如下所示:

例如,您的公司名称(按照字符长度
8
的描述):


string CompanyName=configCode.Substring(3,8)

如前所述,您可以使用如下子字符串扩展方法:

String Company = ConfigCode.Substring(3, 8);

像在
ConfigCode[3]
中一样,实际返回特定索引处的单个字符。而C#不像其他编程语言那样漂亮,因为像
array[3..10]
这样的东西实际上会给你数组的一部分(或者在本例中是字符串)。

string.Substring(startIndex,length)稍微好一点。长度不是8?代码显示为6,但问题提到了8个字符。@ryanyyu很好,我按代码:]我将更新它!子字符串正是我想要的。还纠正了问题中的错误。再次感谢大家!有趣。谢谢你的信息!