Как получить несколько комбинаций элементов из нескольких списков в C # - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть три списка

 List<string> firstList = new List<string> { "A", "B" };
 List<string> secondList = new List<string> { "C", "D", "E" };
 List<string> thirdList = new List<string> { "F", "G" };

И я хочу многократную комбинацию среди всех трех перечисленных выше списков, таких как

ACF
ACG
ADF
ADG
...

Я пробовал SelectMany и Zip, но не сделалработа.

Примечание: помощь будет полезна, если я получу желаемый результат с помощью лямбда-выражения.

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Вы можете сделать это, используя Join как

public class Program
{
    static void Main(string[] args)
    {
        List<string> firstList = new List<string> { "A", "B" };
        List<string> secondList = new List<string> { "C", "D", "E" };
        List<string> thirdList = new List<string> { "F", "G" };

        List<string> result = firstList
                              .Join(secondList, x => true, y => true, (m, n) => m + n)
                              .Join(thirdList, a => true, b => true, (a, b) => a + b)
                              .ToList();

        result.ForEach(x => Console.WriteLine(x));
        Console.ReadLine();
    }
}

Выход:

enter image description here

0 голосов
/ 21 сентября 2018

вам нужно 3 цикла:

List<string> combinations = new List<string>();
for(int i=0; i < firstList.Length; i++)
   for(int j=0;j < secondList.Length; j++)
      for(int k=0;k < thirdList.Length; k++)
            combinations.Add(firstList[i]+secondList[j]+thirdList[k]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...