Ich habe einige Probleme bei der Lösung eines Algorithmus, der dazu dient, alle möglichen Kombinationen von Elementen aus N verschiedenen Listen zu finden (wobei N>=2 && N<=7 -> diese Zahl ist fest und ich kann für jedes N eine andere Methode erstellen). Das Problem sieht folgendermaßen aus: Ich habe fünf Wörterbücher:
IDictionary<int, MyEnum> listOne;
IDictionary<int, MyEnum> listTwo;
IDictionary<int, MyEnum> listThree;
IDictionary<int, MyEnum> listFour;
IDictionary<int, MyEnum> listN;
enum MyEnum
{
MyEnumOne,
MyEnumTwo,
MyEnumThree,
MyEnumFour,
MyEnumFive,
MyEnumOther
}
die eine beliebige Anzahl von Elementen haben können (nicht mehr als 100, und in den meisten Fällen werden sie zwischen 32 und 64 Elemente haben) und wobei MyEnum eine einfache Aufzählung von Namen mit einigen Werten ist.
Für jede mögliche Kombination habe ich eine Methode, die die Kombination untersucht und prüft, ob sie einige Bedingungen erfüllt, und wenn sie erfüllt sind, speichert einige Daten auf der Grundlage der Kombination.
Ich habe versucht, einfache verschachtelte Iterationen mit foreachs für jede Liste, die wie erwartet, nehmen Ewigkeiten zu laufen!
Jede Hilfe, wo ich anfangen sollte, was ich tun sollte, oder was ich nicht tun sollte, ist mehr als willkommen, und wenn Sie weitere Informationen benötigen, fragen Sie einfach!
* *EDIT: Eine Kombination auf der Grundlage von fünf Listen, wie oben gezeigt, wäre zum Beispiel:
(MyEnumOne, MyEnumOne, MyEnumFour, MyEnumFive, MyEnumTwo)
und, wie diese Kombination, kann mehrere Male erscheinen (wie MyEnumOne Wert kann viele Male auf listOne, etc.), ich habe auch, Aufzeichnung zu halten, wie oft diese Kombination geschieht.