提问者:小点点

如何在C#中更改字符串数组


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

        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的本地参数,因为该名称正在封闭的本地作用域中用于定义本地或参数


共2个答案

匿名用户

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

所以不是

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

使用

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

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

匿名用户

您正在声明另一个变量,其名称已在同一作用域中声明。 要么给第二个变量一个新名称,要么删除声明,只执行requiredHeaders=new string[]{values here}

这里有一篇简单的文章,可以给你一个通俗易懂的解释。