解析数组

本文关键字:数组 | 更新日期: 2023-09-27 18:34:25

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

此数组表示我们产品中设置的大量组合。 我需要提取数组中的所有参考标志。 前 3 个字符代表特定型号 NL1,接下来的 8 个字符代表公司 NAMEOFCO。 "-"将始终位于同一位置。 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

(

它的文档在这里:http://msdn.microsoft.com/en-us/library/aka44szs(v=vs.110(.aspx

例如,您的公司名称将是(按字符长度描述为 8(:

string CompanyName = configCode.Substring(3, 8);

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

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

字符串的方括号运算符,如ConfigCode[3],实际上返回该特定索引处的单个字符。 而且 C# 并不像其他编程语言那样漂亮,像 array[3..10] 这样的东西实际上给了你数组的一部分(或者在这种情况下,是一个字符串(。