Мне нужна помощь, может кто-нибудь разобраться со мной?
У меня есть одномерный массив, я хочу разделить его на двухмерный массив, создав два строковых массива, первый - string[,]
, а второй - пуст string[]
под двумерным столбцом.
Но я получаю сообщение об ошибке, которое выглядит как WRONG NUMBER OF INDICIES INSIDE EXPECTED 2
в первом FOR
l oop под ** two dimensional array**
рядом с tofinds[i]
.
Кто-нибудь, пожалуйста, скажите мне, в чем будет проблема?
**One dimensional Array**
string[] tofinds = {
"Scale_NCR_Bag BOOT_FIRMWARE 497-0465768", //0
"Scale_NCR_Bag MAIN_FIRMWARE 497-0474615",
"Scale_NCR_Bag SERIAL_NUMBER",
"Scale_NCR_Bag POD1_SERIAL_NUMBER",
"Scale_NCR_Bag POD2_SERIAL_NUMBER",
"Scale_NCR_Bag POD3_SERIAL_NUMBER",
"Scale_NCR_Bag POD4_SERIAL_NUMBER",
"Scale_NCR_Bag POD1_MODEL_NUMBER",
"Scale_NCR_Bag POD2_MODEL_NUMBER",
"Scale_NCR_Bag POD3_MODEL_NUMBER",
"Scale_NCR_Bag POD4_MODEL_NUMBER"
};
for (int i = 0; i < tofinds.Length; i++)
{
if (!System.Linq.Enumerable.Contains(moduleParametersDic.Keys, tofinds[i]))
{
throw new TestFailedException(tofinds[i] + " not found in CaddRuntime !");
}
else
{
testExecutor.WriteToJournal("? " + moduleToFind.ToLower() + "|" + tofinds[i] +
"|" + moduleParametersDic[tofinds[i]]);
}
}
**Two dimensional Array**
string[,] tofinds = {
{"BOOT_FIRMWARE", "497-0465768"}, //0
{"MAIN_FIRMWARE", "497-0474615"},
};
string[] tofinds1 = {
"SERIAL_NUMBER",
"POD1_SERIAL_NUMBER",
"POD2_SERIAL_NUMBER",
"POD3_SERIAL_NUMBER",
"POD4_SERIAL_NUMBER",
"POD1_MODEL_NUMBER",
"POD2_MODEL_NUMBER",
"POD3_MODEL_NUMBER",
"POD4_MODEL_NUMBER"
};
for (int i = 0; i < tofinds.Length; i++)
{
if (!System.Linq.Enumerable.Contains(moduleParametersDic.Keys, tofinds[i]))
{
throw new TestFailedException(tofinds[i] + " not found in CaddRuntime !");
}
else
{
testExecutor.WriteToJournal("? " + moduleToFind.ToLower() + "|" + tofinds[i] +
"|" + moduleParametersDic[tofinds[i]]);
}
}
for (int i = 0; i < tofinds1.Length; i++)
{
if (!System.Linq.Enumerable.Contains(moduleParametersDic.Keys, tofinds1[i]))
{
throw new TestFailedException(tofinds1[i] + " not found in CaddRuntime !");
}
else
{
testExecutor.WriteToJournal("? " + moduleToFind.ToLower() + "|" + tofinds1[i] +
"|" + moduleParametersDic[tofinds1[i]]);
}
}
ИЗМЕНЕНО
Надеюсь, это сработает правильно? Первый массив строк является двумерным, а второй массив строк, который я использую, является одномерным.
Для первого FOR
l oop я создал несколько для l oop i
и j
.
string[,] tofinds =
{
{ "BOOT_FIRMWARE", "497-0465768"},
{ "MAIN_FIRMWARE", "497-0474615"},
};
string[] tofinds1 =
{
"SERIAL_NUMBER",
"POD1_SERIAL_NUMBER",
"POD2_SERIAL_NUMBER",
"POD3_SERIAL_NUMBER",
"POD4_SERIAL_NUMBER",
"POD1_MODEL_NUMBER",
"POD2_MODEL_NUMBER",
"POD3_MODEL_NUMBER",
"POD4_MODEL_NUMBER",
};
for (int i = 0; i < tofinds.Length; i++)
{
for(int j = 0; j < tofinds.Length; j++)
{
if
(!System.Linq.Enumerable.Contains(moduleParametersDic.Keys,
tofinds[i,j]))
{
throw new TestFailedException(tofinds[i,j] + " not
found in CaddRuntime !");
}
else
{
testExecutor.WriteToJournal("? " +
moduleToFind.ToLower() + "|" + tofinds[i,j] + "|" +
moduleParametersDic[tofinds[i,j]]);
}
}
}
for (int i = 0; i < tofinds.Length; i++)
{
if (!System.Linq.Enumerable.Contains(moduleParametersDic.Keys, tofinds[i]))
{
throw new TestFailedException(tofinds[i] + " not found in CaddRuntime !");
}
else
{
testExecutor.WriteToJournal("? " + moduleToFind.ToLower() + "|" + tofinds[i] + "|" + moduleParametersDic[tofinds[i]]);
}
}