Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

List<T>.TrimExcess-Methode

Aktualisiert: November 2007

Legt die Kapazität auf die Anzahl der tatsächlich in der List<T> befindlichen Elemente fest, sofern diese Anzahl unter dem Schwellenwert liegt.

Namespace:  System.Collections.Generic
Assembly:  mscorlib (in mscorlib.dll)

public void TrimExcess()
public void TrimExcess()
public function TrimExcess()

Mit dieser Methode kann der Speicheraufwand für eine Auflistung minimiert werden, sobald dieser keine neuen Elemente mehr hinzugefügt werden. Das Neureservieren und Kopieren einer umfangreichen List<T> kann sehr aufwendig sein. Wenn die Liste jedoch größer als 90 Prozent der Kapazität ist, bleibt die TrimExcess-Methode ohne Auswirkung. Dadurch wird ein großer Aufwand bei der Neureservierung vermieden, der kein nennenswertes Ergebnis erbringt.

ms132207.alert_note(de-de,VS.90).gifHinweis:

Der aktuelle Schwellenwert von 90 Prozent ändert sich möglicherweise in zukünftigen Versionen.

Diese Methode ist ein O(n)-Vorgang, wobei n der Count ist.

Rufen Sie die Clear-Methode vor der TrimExcess-Methode auf, um eine List<T> auf ihren Ausgangszustand zurückzusetzen. Durch das Verkürzen einer leeren List<T> wird die Kapazität von List<T> auf die Standardkapazität festgelegt.

Die Kapazität kann auch mithilfe der Capacity-Eigenschaft festgelegt werden.

Im folgenden Codebeispiel wird die TrimExcess-Methode veranschaulicht. Es werden mehrere Eigenschaften und Methoden der List<T>-Klasse zum Hinzufügen, Einfügen und Entfernen von Elementen aus einer Liste von Zeichenfolgen verwendet. Mit der TrimExcess-Methode wird die Kapazität daraufhin so verringert, dass sie der Anzahl entspricht, und die Capacity-Eigenschaft sowie die Count-Eigenschaft werden angezeigt. Wenn die nicht verwendete Kapazität weniger als 10 Prozent der Gesamtkapazität betragen hätte, wäre die Größe der Liste nicht geändert worden. Abschließend wird der Inhalt der Liste gelöscht.

using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        List<string> dinosaurs = new List<string>();

        Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);

        dinosaurs.Add("Tyrannosaurus");
        dinosaurs.Add("Amargasaurus");
        dinosaurs.Add("Mamenchisaurus");
        dinosaurs.Add("Deinonychus");
        dinosaurs.Add("Compsognathus");

        Console.WriteLine();
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);
        Console.WriteLine("Count: {0}", dinosaurs.Count);

        Console.WriteLine("\nContains(\"Deinonychus\"): {0}",
            dinosaurs.Contains("Deinonychus"));

        Console.WriteLine("\nInsert(2, \"Compsognathus\")");
        dinosaurs.Insert(2, "Compsognathus");

        Console.WriteLine();
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\ndinosaurs[3]: {0}", dinosaurs[3]);

        Console.WriteLine("\nRemove(\"Compsognathus\")");
        dinosaurs.Remove("Compsognathus");

        Console.WriteLine();
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        dinosaurs.TrimExcess();
        Console.WriteLine("\nTrimExcess()");
        Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
        Console.WriteLine("Count: {0}", dinosaurs.Count);

        dinosaurs.Clear();
        Console.WriteLine("\nClear()");
        Console.WriteLine("Capacity: {0}", dinosaurs.Capacity);
        Console.WriteLine("Count: {0}", dinosaurs.Count);
    }
}

/* This code example produces the following output:

Capacity: 0

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Deinonychus
Compsognathus

Capacity: 8
Count: 5

Contains("Deinonychus"): True

Insert(2, "Compsognathus")

Tyrannosaurus
Amargasaurus
Compsognathus
Mamenchisaurus
Deinonychus
Compsognathus

dinosaurs[3]: Mamenchisaurus

Remove("Compsognathus")

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Deinonychus
Compsognathus

TrimExcess()
Capacity: 5
Count: 5

Clear()
Capacity: 5
Count: 0
 */


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile für Smartphone, Windows Mobile für Pocket PC, Xbox 360

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0

.NET Compact Framework

Unterstützt in: 3.5, 2.0

XNA Framework

Unterstützt in: 2.0, 1.0
Anzeigen: