Сочетание элементов с использованием массива - PullRequest
0 голосов
/ 04 февраля 2020

Цель:
Составить комбинацию элемента, используя входные данные. Цель - добиться результата.

An example      

Current situation (input):      
jim west    aaa 12345
Le tomo     bbb 
Sara brown      

Requested Result(output):       
jim west    aaa 12345
Le tomo     aaa 12345
Sara brown  aaa 12345
jim west    bbb 
Le tomo     bbb 
Sara brown  bbb 

-------------------------------

Another example     

Current situation (input):      
jim west    aaa 12345
Le tomo     bbb 32154
Sara brown  ccc 78946

Requested Result(output):       
jim west    aaa 12345
Le tomo     aaa 12345
Sara brown  aaa 12345
jim west    bbb 32154
Le tomo     bbb 32154
Sara brown  bbb 32154
jim west    ccc 78946
Le tomo     ccc 78946
Sara brown  ccc 78946

-------------------------------

Another example

Current situation (input):              
jim west    aaa 12345
Le tomo     
Sara brown      

Requested Result(output):       
jim west    aaa 12345
Le tomo     aaa 12345
Sara brown  aaa 12345

Проблема:
* Я не знаю, как ее решить. Есть ли у вас какие-либо советы о том, какой путь мне следует использовать?

Информация:
* Мне не удалось использовать перестановку в этом контексте.

public class Program
{
    static void Main(string[] args)
    {

        string[] column1 = { "jim west", "Le tomo", "Sara brown" };
        string[] column2 = { "aaa", "bbb"};
        string[] column3 = { "12345" };



    }
}

1 Ответ

0 голосов
/ 04 февраля 2020

Этот код создаст результат в примерах:

{
            var result = new List<string[]>();

            string[] column1 = { "jim west", "Le tomo", "Sara brown" };
            string[] column2 = { "aaa", "bbb" };
            string[] column3 = { "12345" };

            foreach(string c1 in column1)
            {
                for(int i = 0; i < column2.Length; i++)
                {
                    string[] toAdd = { c1, column2[i], column3.Length> i ? column3[i] : ""  };
                    result.Add(toAdd);
                }
            }

Причина использования for вместо foreach заключается в том, что colums2 и colums3 связаны друг с другом в примерах. Если они не должны быть связаны друг с другом; 3 вложенных foreach сделают свое дело так:

    var result = new List<string[]>();

    string[] column1 = { "jim west", "Le tomo", "Sara brown" };
    string[] column2 = { "aaa", "bbb" };
    string[] column3 = { "12345" };

    foreach(string c1 in column1)
    {

        foreach(string c2 in column2)
        {
            foreach(string c3 in column3)
            {
                string[] toAdd = { c1, c2, c3 };
                result.Add(toAdd);
            }
        }
    } 
...