-3

当我尝试检查给定 XML 标记的实例是否出现在正在读取的先前 XML 文件中时,我收到此错误,因此,它是否应该在我创建的数据表中获得自己的列。简而言之,我创建了一个字符串占位符数组,它将存储列名,并且我想检查 XMLReader 是否读取了同名的标签:

// initializing dummy columns
string[] columns;

// check if it is a first time occurance of this tag
for(int n = 0; n < totalcolumns; n++)
{
     if (reader.Name == columns[n])
     {
           columnposition = n;
           break;
     }
     else if(totalcolumns == columntracker+1)
     {
           // just adding it to the record-keeping array of tables
           columns[n] = reader.Name;
           column.ColumnName = "reader.Name";
           dt.Columns.Add(column);
           columnposition = n;
     }

     columntracker++;
}

我应该注意到 for 循环发生在 switch 语句中,它只是检查 XML 节点类型。另外,我尝试做一个开关,但它不允许有一个可变的案例,即在案例声明中使用列[n]。

4

2 回答 2

2

如果要初始化columns为一个totalcolumns strings 数组,它看起来像这样:

string[] columns = new string[totalcolumns];
于 2013-06-25T22:45:48.330 回答
0

虽然 minitech 的答案解决了未初始化变量的问题,但我会使用 List 而不是字符串数组。代码使用 List.FindIndex 变得更简单,而不是遍历字符串数组。

        List<String> columns = new List<string>();
        columnposition = columns.FindIndex (s => string.Equals(s, reader.Name);
        if (columnposition < 0)
        {
            columns.Add ( reader.Name);
            columnposition = columns .Count -1;
            // .. do the other stuff 
        }
于 2013-06-25T23:59:14.323 回答