在多维字符串数组中搜索字符串并获取项的索引

本文关键字:字符串 获取 串并 字符 索引 搜索 数组 | 更新日期: 2023-09-27 18:20:03

我一直在尝试获取数组中字符串的索引,并使用array.IndexOf方法返回其值,因为其他人告诉我它有效,但我一直收到错误。我是不是把代码打错了?

private string getBlockDataOrName(string nameOrData, string index)
{
    String[,] blocks = {{ "stone", "grass", "dirt", "trees", "logs", "shovel", "bedrock" },
                        { "6", "0", "2", "0", "5", "5", "0" }};
    if (nameOrData == "Data")
        return blocks[1, Array.IndexOf(blocks, index)];
    else
        return blocks[0, Convert.ToInt64(index)];
}

这是我一直得到的错误:

mscorlib.dll 中发生"System.RankException"类型的未处理异常

附加信息:此处仅支持一维数组。

我看不出这将如何只在一维数组上工作。

在多维字符串数组中搜索字符串并获取项的索引

您可以尝试锯齿状数组,如下所示:

private string getBlockDataOrName(string nameOrData, string index)
{
    String[][] blocks = {
                            new []{ "stone", "grass", "dirt", "trees", "logs", "shovel", "bedrock" },
                            new []{ "6", "0", "2", "0", "5", "5", "0" }
                        };
    if (nameOrData == "Data")
        return blocks[1][Array.IndexOf(blocks[1], index)];
    else
        return blocks[0][Convert.ToInt64(index)];
}

"我看不出这只会在一维阵列上起作用。"

这只是函数IndexOf的设计方式,它返回一个int,而不是多个值,并且除了一维数组

之外,不支持任何东西