【问题标题】:How do change the string array in C#如何在 C# 中更改字符串数组
【发布时间】:2020-06-17 13:30:11
【问题描述】:

我正在尝试将一些列标题从 Excel 工作表添加到字符串 [],但如果我没有得到一组标题,我可以假设它是我需要定义的另一组标题。希望下面的代码比我能解释的更好:

        string[] requiredHeaders = { "orderNo",
                                     "styleNo",
                                     "description",
                                     "size",
                                     "colour",
                                     "qtyPerCarton",
                                     "numberOfCartons",
                                     "total" };
        CurrentRow = 1;
        int headerRow = HeaderCheck(ref headerMap, requiredHeaders);
        //Check we have headers to pass before continuing
        if(headerRow != 0)
        {
            ProcessDeliveryNote(ref headerMap, headerRow);
        }
        else 
        {
            string[] requiredHeaders = { "description",
                                         "qtyPerCarton",
                                         "cartonWeight",
                                         "cartonSize",
                                         "noOfCartons",
                                         "totalNoOfUnits" };

            headerRow = HeaderCheck(ref headerMap, requiredHeaders);
            if(headerRow != 0)

在第二次出现 string[] requiredHeaders 时,我收到以下错误: 无法在此范围内声明名为 requiredHeaders 的本地参数,因为该名称正在封闭的本地范围中用于定义本地或参数

【问题讨论】:

    标签: c# arrays string


    【解决方案1】:

    您正在尝试定义名为 requiredHeaders 的变量两次。第二次您不需要创建它,因为它已经存在 - 您只需为其分配不同的值。

    所以不是

    string[] requiredHeaders = { "description",
        "qtyPerCarton",
        "cartonWeight",
        "cartonSize",
        "noOfCartons",
        "totalNoOfUnits"
    };
    

    使用

    requiredHeaders = new string[] { 
        "description",
        "qtyPerCarton",
        "cartonWeight",
        "cartonSize",
        "noOfCartons",
        "totalNoOfUnits"
    };
    

    这样您不会重新创建 requiredHeaders,而是创建一个新数组并将其分配给 requiredHeaders

    【讨论】:

    • 如果我这样做,我会在每个逗号和结尾 } "Expected ;" 上得到红色波浪线
    • 编辑成功了!谢谢。一旦计时器允许我将标记为已回答
    【解决方案2】:

    您正在声明第二个变量,其名称已在同一范围内声明。 要么给第二个变量一个新名称,要么删除声明,然后执行requiredHeaders = new string[] { values here }

    Here's一篇简单的文章,可以给你一个通俗易懂的解释。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-11
      • 2014-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多