Tengo dos cuadros de texto que leen de un archivo de texto. Quiero intentar concatenar recursivamente los dos de manera que cada valor del cuadro de texto 1 se concatene con CADA valor en cuadro de texto 2 separado con un delimitador, como en el ejemplo a continuación:

Cuadro de texto 1

user1

user2

user3

user4

user5

Cuadro de texto 2

id1

id2

id3

Quiero que la salida sea así:

user1,id1

user1,id2

user1,id3

user2,id1

user2,id2

user2,id3

Y así sucesivamente...

¿Alguna idea de cómo se hace esto? Es para un programa personal que estoy haciendo para mí mismo para hacer mi vida más fácil para mi negocio. No tengo mucha experiencia en programación, por lo que es un poco difícil para mí.

Ya sé cómo guardar la salida en otro archivo y llenar el cuadro de texto 1 y 2 con valores de un archivo de texto, solo estoy luchando con esta última parte.

Mi código para llenar los dos cuadros de texto

// Read files and fill lists
private void listOneBtn_Click(object sender, EventArgs e)
{
    if(openFile.ShowDialog() == DialogResult.OK)
    {                
        string read = File.ReadAllText(openFile.FileName);
        list1 = read;
        listOneBox.Text = list1;
    }
}

private void listTwoBtn_Click(object sender, EventArgs e)
{
    if (openFile.ShowDialog() == DialogResult.OK)
    {               
        string read = File.ReadAllText(openFile.FileName);                
        list2 = read;
        listTwoBox.Text = list2;
    }
}

Editar: así es como se ve mi programa:

screenshot

0
ezcujstom 14 feb. 2020 a las 06:53

2 respuestas

La mejor respuesta

Prueba esto:

    string textbox1 = @"user1
user2
user3
user4
user5";

    string textbox2 = @"id1
id2
id3";

    string[] Split(string text) =>
        text.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

    string[] result
        = Split(textbox1).SelectMany(x => Split(textbox2), (x, y) => $"{x},{y}").ToArray();

Eso me da:

user1,id1 
user1,id2 
user1,id3 
user2,id1 
user2,id2 
user2,id3 
user3,id1 
user3,id2 
user3,id3 
user4,id1 
user4,id2 
user4,id3 
user5,id1 
user5,id2 
user5,id3 
0
Enigmativity 14 feb. 2020 a las 04:26
        static void rec1(string[] strBox1, string[] strBox2, int i)
        {
            if (i < strBox1.Length)
            {
                rec2(strBox1[i], strBox2, 0);
                rec1(strBox1, strBox2, i+=1);
            }
        }
        static void rec2(string str, string[] strBox2, int j)
        {


            if (j < strBox2.Length)
            {
                Console.WriteLine(str.Trim() + "," + strBox2[j].Trim());
                rec2(str, strBox2, j +=1);
            }

        }

        static void Main(string[] args)
        {
            var txtBox1 = listOneBox.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); //Returns a string array that contains the substrings in this instance that are delimited by ENTER '\n'
            var txtBox2 = listTwoBox.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

            rec1(txtBox1, txtBox2, 0);

        }
0
Amine Ramoul 14 feb. 2020 a las 05:09