什么是c#中的数组(2维)的InStr的等价物

时间:2017-11-15 10:36:10

标签: c# excel

我是c#的新手,如果我不能很好地解释我需要什么,请告诉我。 我从excel文件中读取一些数据,然后将数据存储到数组中。

excel.Application x1app = new excel.Application();
        x1app.Visible = true;
        excel.Workbook x1workbook = x1app.Workbooks.Open(@"...");
        x1workbook.Activate();
        excel.Worksheet x1worksheet = x1workbook.Worksheets[1];
        excel.Range x1range = x1worksheet.UsedRange;
        System.Array myvalues;
        myvalues = (System.Array)x1range.Cells.Value;

现在我想在数组上使用来自InStr的{​​{1}}的等价物,但我不知道它的等价物。

我尝试了VBA,但这项工作只针对一个维度数组。

1 个答案:

答案 0 :(得分:0)

如果你要将一个范围导入数据结构,我认为你想要的是一个二维数组:

[tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath: indexPath];

可以按如下方式提取单个值:

object[,] myvalues = x1range.Cells.Value;

如果你想循环遍历所有细胞,那么foreach是最简单的:

object cellValue = myvalues[3, 4];

或者,如果x / y位置很重要,您可以按如下方式遍历X / Y:

foreach (object o in myvalues)
{
    string myText = o == null ? null : o.ToString();
}

请注意,C#是基于0的,但在Excel输出中,您确实希望使用基于1的引用。

for (int i = 1; i < myvalues.GetLength(0); i++) { for (int j = 1; j < myvalues.GetLength(1); i++) { object o = myvalues[i, j]; } } 函数在C#中起作用,但不能在这样的数组中起作用。如果您想使用它,您始终可以将数组转换为列表:

IndexOf