Разделение одномерного строкового массива на двумерный строковый массив - PullRequest
0 голосов
/ 17 июня 2020

Мне нужна помощь, может кто-нибудь разобраться со мной?

У меня есть одномерный массив, я хочу разделить его на двухмерный массив, создав два строковых массива, первый - 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]]);
        }
    
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...