У меня есть два List<String>
, который содержит
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
)