Heim >Backend-Entwicklung >C++ >Wie generiere ich alle möglichen Kombinationen einer Liste in C#?

Wie generiere ich alle möglichen Kombinationen einer Liste in C#?

DDD
DDDOriginal
2025-01-16 17:39:11314Durchsuche

How to Generate All Possible Combinations of a List in C#?

Liste aller möglichen Kombinationen erstellen

In C# kann es vorkommen, dass Sie eine Liste mit Ganzzahlen verarbeiten müssen, die Anzahl der Elemente aber erst zur Laufzeit kennen. Um diese Situation zu lösen, ist es wichtig, alle möglichen Kombinationen von Listen zu finden.

Dazu können Sie eine mathematische Methode verwenden:

<code class="language-csharp">static void GetCombination(List<int> list)
{
    double count = Math.Pow(2, list.Count);
    for (int i = 1; i < count; i++)
    {
        string str = Convert.ToString(i, 2);
        str = str.PadLeft(list.Count, '0');
        Console.Write("{");
        for (int j = 0; j < str.Length; j++)
        {
            if (str[j] == '1')
            {
                Console.Write(list[j] + ",");
            }
        }
        Console.WriteLine("}");
    }
}</code>

Diese Methode:

  • Verwenden Sie 2^list.Count, um die Gesamtzahl der Kombinationen zu berechnen.
  • Konvertieren Sie jeden kombinierten Index i in seine binäre Darstellung als String str.
  • Füllen Sie die Zeichenfolge mit führenden Nullen auf, um sie an die Listenlänge anzupassen.
  • Iterieren Sie die Zeichen in str. Ist das Zeichen '1', wird das entsprechende Element in der Liste ausgegeben.
  • Wiederholen Sie diesen Vorgang für jeden Index i und generieren Sie so alle möglichen Kombinationen.

Das obige ist der detaillierte Inhalt vonWie generiere ich alle möglichen Kombinationen einer Liste in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn