在多维字符串数组中搜索字符串并获取项的索引
本文关键字:字符串 获取 串并 字符 索引 搜索 数组 | 更新日期: 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,而不是多个值,并且除了一维数组