c# producto cartesiano de arrays

Жабы Necesito hallar la forma de obtener las combinaciones que se puedan dar cogiendo un elemento del primer выстраивают y otro del segundo. Pongo un ejemplo para que se entienda ARRAY X = [A, B] ВЫСТРАИВАЮТ Y = [1,2]

resultados que se buscan obtener o mostrar A1 A2 B1 B2

en este caso tiene 2 elementos el array y B pero podrian подросток 5 y 8 elementos. Комо obtengo жабы las posibles combinaciones, estoy programando en c# y necesito hallar una manera de combinar различные массивы.

0
задан 23.03.2017, 22:07
2 ответа
    static string [] combinar(string [] primerArray, string [] segundoArray)
    {
        string[] resultado = new string[primerArray.Length * segundoArray.Length];
        int c = 0;
        for(int i=0; i<primerArray.Length;i++)
            for (int j = 0; j < segundoArray.Length; j++)
            {
                resultado[c] = primerArray[i] + segundoArray[j];
                c++;
            }
        return resultado;
    }
0
ответ дан 24.11.2019, 10:25
  • 1
    Уже ló probé и функционируй совершенно спасибо! Я буду стараться делать это с тремя arrays сейчас, – AlexH 23.03.2017, 22:25
  • 2
    В этом случае, ¿ две договоренности должны иметь ту же длину? я думаю, что важно добавлять что-то descripció n в твой ответ. – Mauricio Arias Olave 23.03.2017, 23:25

Так как aceptГі другой ответ с одной implementaciГіn традиционный, я позволено добавлять ответ для более общего благодеяния.

Понимая, что у тебя есть 2 следующих списка:

char[] charList = { 'A', 'B', 'C' };
int[] intList = { 1, 2, 3, 4 };

... это 2 выбора, которые я знаю, чтобы получать картезианский продукт используя единственное решение LINQ:

  1. Используя Enumerable.SelectMany ( Demo ):

    var productoCartesiano = 
        charList.SelectMany(c => intList.Select(n => string.Concat(c, n)));
    
  2. Используя Enumerabe.Join, но usГЎndolo формы, эквивалентной SQL CROSS JOIN или INNER JOIN ... ON 1=1 ( Demo ):

    var productoCartesiano = 
        charList.Join(intList, c => 1, n => 1, (c, n) => string.Concat(c, n));
    
2
ответ дан 24.11.2019, 10:25