Как получить движущуюся комбинацию из двух List в C#?

У меня есть два List, которые содержат

ListOne
          A
          B
          C
ListTwo
          A
          B
          C
          D

Теперь мне нужно получить движущиеся комбинации в строку списка

Так что выходной список будет содержать

         A-B
         A-C
         A-D
         B-C
         B-D
         C-D

Теперь я использую Nested for loop для этого.? Есть ли способ сделать это с помощью LINQ или LAMBDA EXPRESSION Пожалуйста, помогите мне в этом. Заранее спасибо

Пример кода

List<String> ListOne = new List<string> { "A","B","C"};
List<String> ListTwo = new List<string> { "A", "B", "C", "D" };

List<String> Result = new List<string>(from X in ListOne 
                                       from Y in ListTwo 
                                       where X!=Y
                                        select string.Format("{0}-{1}", X, Y));

Но он не дает правильного вывода

  It produces like

            A-B
            A-C
            A-D
            B-A
            B-C
            B-D
            C-A
            C-B
            C-D

Но требуемый вывод похож на

         A-B
         A-C
         A-D
         B-C
         B-D
         C-D

Пример кода с использованием For Loop

List<String> ResultTwo = new List<string>();
        for (int i = 0; i < ListOne.Count; i++)
        {
            for (int j = 0; j < ListTwo.Count; j++)
            {
                if(ListOne[i] != ListTwo[j])
                    if (ResultTwo.Contains(ListOne[i] + "-" + ListTwo[j]) == false && ResultTwo.Contains(ListTwo[j] + "-" + ListOne[i]) == false) 
                ResultTwo.Add(ListOne[i] + "-" + ListTwo[j]);
            }
        }

его работает нормально.... но мне просто нужен простой способ ( Используя LINQ)

6
задан Thorin Oakenshield 17 December 2010 в 13:01
поделиться