Mam listę numerów i muszę utworzyć każdą możliwą unikalną kombinację liczb na liście, bez powtórzeń, za pomocą kwerendy LINQ. Tak więc, na przykład, jeśli mam { 1, 2, 3 }
, kombinacje będą następujące: 1-2
, 1-3
i 2-3
.Wybierz wszystkie unikalne kombinacje pojedynczej listy, bez powtórzeń, używając LINQ
Używam obecnie dwa for
pętle, tak:
for (int i = 0; i < slotIds.Count; i++)
{
for (int j = i + 1; j < slotIds.Count; j++)
{
ExpressionInfo info1 = _expressions[i];
ExpressionInfo info2 = _expressions[j];
// etc...
}
}
Czy to możliwe, aby przekształcić te dwa for
pętle do LINQ?
Dzięki.
Zobacz to do dyskusji na temat ezoterycznych pierwszego rozwiązania: http://stackoverflow.com/questions/7991486/select-all-unique- kombinacje pojedynczej listy z bez powtórzeń-używając-linq-pa – Thilo
@David: Nie wierzę żadnej z kolekcji w .NET zwracając elementy w innej kolejności, gdy jest iterowane wiele razy bez zmiany między. Nie obchodzi nas, jaka jest kolejność, o ile jest spójna. –
Dangit, mamy gdzieś najdziwniejszy błąd, dzięki temu usunę moje 2 komentarze: p – David