Wie im Titel. Ich weiß, dass es wahrscheinlich zwei Unterlisten vor und nach gelöschten Elementen zusammenführt, aber wie verhält sich diese Methode beim Entfernen von LAST-Elementen? Mit anderen Worten: Macht es irgendwie eine Kopie aller Elemente, die sich vor dem Entfernen des Index befinden? Ich bin nur neugierig auf die Leistung der Verwendung von RemoveRange auf einer riesigen Liste (sagen wir 5000 Elemente), nur um z. B. zu entfernen. nur die letzten 2 von ihnen.Wie funktioniert die RemoveRange() - Methode in einer Liste <>?
Wenn es dann eine Kopie macht, gibt es eine Möglichkeit, eine interne Variable zu ändern, die die Größe der Liste einstellt (und Rest der zugeordneten Elemente als Müll behandeln)?
Ich habe nur eine Information gefunden, dass es ein O (n) Komplexitätsalgorithmus ist, aber ich bin mir nicht sicher, ob das "n" in diesem Fall eine Listengröße oder eine Anzahl zu löschender Elemente ist.
Wir freuen uns über jeden Hinweis.
http://msdn.microsoft.com/en-gb/library/y33yd2b5.aspx "Diese Methode ist eine O (n) -Operation, wobei n Count ist." "Die Elemente werden entfernt und alle Elemente, die ihnen in der Liste folgen, werden um die Anzahl ihrer Indizes reduziert." http://geekswithblogs.net/BlackRabbitCoder/archive/2012/02/23/c.net-little-wondersndashthe-listlttgt-range-methods.aspx "Beachten Sie, dass dies dazu führt, dass der Rest der Liste nach unten verschoben werden muss füllen Sie die Lücke, die nicht trivial sein kann.Es wird jedoch keine Neuzuweisung der Liste erforderlich sein, da die Größe möglicherweise schrumpft, nicht wächst. " –
Komm, du denkst, dass count die zu entfernende Zahl ist. Das Entfernen von 2 aus einer Liste von zehn dauert genauso lange Entfernen von 2 von einer Million Wenn Sie auf die Anzahl in der Dokumentation klicken, wird die Anzahl der Listen verknüpft. – Paparazzi
@Blam Das ist nicht wahr, es sei denn, Sie entfernen am Ende der Liste. Wenn Sie am Anfang der Liste entfernen dann ist es der Unterschied zwischen dem Verschieben von 8 Elementen im Speicher um zwei Elemente gegenüber dem Verschieben von 1.999.998 Elementen im Speicher um zwei Elemente, die nicht gleich sein werden – Servy