List<T>.Remove Method

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Removes the first occurrence of a specific object from the List<T>.

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

Syntax

'Declaration
Public Function Remove ( _
    item As T _
) As Boolean
public bool Remove(
    T item
)

Parameters

  • item
    Type: T
    The object to remove from the List<T>. The value can be nulla null reference (Nothing in Visual Basic) for reference types.

Return Value

Type: System.Boolean
true if item is successfully removed; otherwise, false. This method also returns false if item was not found in the List<T>.

Implements

ICollection<T>.Remove(T)

Remarks

This method determines equality using the default equality comparer EqualityComparer<T>.Default for T, the type of values in the list.

This method performs a linear search; therefore, this method is an O(n) operation, where n is Count.

Examples

The following code example demonstrates Remove method. Several properties and methods of the List<T> generic class are used to add, insert, and search the list. After these operations, the list contains a duplicate. The Remove method is used to remove the first instance of the duplicate item, and the contents are displayed. The Remove method always removes the first instance it encounters.

Imports System.Collections.Generic

Public Class Example

   Public Shared Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)

      Dim dinosaurs As New List(Of String)

      outputBlock.Text &= String.Format(vbLf & "Capacity: {0}", dinosaurs.Capacity) & vbCrLf

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

      outputBlock.Text &= vbCrLf
      For Each dinosaur As String In dinosaurs
         outputBlock.Text &= dinosaur & vbCrLf
      Next

      outputBlock.Text &= String.Format(vbLf & "Capacity: {0}", dinosaurs.Capacity) & vbCrLf
      outputBlock.Text &= String.Format("Count: {0}", dinosaurs.Count) & vbCrLf

      outputBlock.Text &= vbLf & String.Format("Contains(""Deinonychus"": {0}", _
          dinosaurs.Contains("Deinonychus")) & vbCrLf

      outputBlock.Text &= String.Format(vbLf & "Insert(2, ""Compsognathus"")") & vbCrLf
      dinosaurs.Insert(2, "Compsognathus")

      outputBlock.Text &= vbCrLf
      For Each dinosaur As String In dinosaurs
         outputBlock.Text &= dinosaur & vbCrLf
      Next

      outputBlock.Text &= String.Format(vbLf & "dinosaurs(3): {0}", dinosaurs(3)) & vbCrLf

      outputBlock.Text &= vbLf & "Remove(""Compsognathus"")" & vbCrLf
      dinosaurs.Remove("Compsognathus")

      outputBlock.Text &= vbCrLf
      For Each dinosaur As String In dinosaurs
         outputBlock.Text &= dinosaur & vbCrLf
      Next

      dinosaurs.TrimExcess()
      outputBlock.Text &= vbLf & "TrimExcess()" & vbCrLf
      outputBlock.Text &= String.Format("Capacity: {0}", dinosaurs.Capacity) & vbCrLf
      outputBlock.Text &= String.Format("Count: {0}", dinosaurs.Count) & vbCrLf

      dinosaurs.Clear()
      outputBlock.Text &= vbLf & "Clear()" & vbCrLf
      outputBlock.Text &= String.Format("Capacity: {0}", dinosaurs.Capacity) & vbCrLf
      outputBlock.Text &= String.Format("Count: {0}", dinosaurs.Count) & vbCrLf
   End Sub
End Class

' 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
using System;
using System.Collections.Generic;

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      List<string> dinosaurs = new List<string>();

      outputBlock.Text += String.Format("\nCapacity: {0}", dinosaurs.Capacity) + "\n";

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

      outputBlock.Text += "\n";
      foreach (string dinosaur in dinosaurs)
      {
         outputBlock.Text += dinosaur + "\n";
      }

      outputBlock.Text += String.Format("\nCapacity: {0}", dinosaurs.Capacity) + "\n";
      outputBlock.Text += String.Format("Count: {0}", dinosaurs.Count) + "\n";

      outputBlock.Text += String.Format("\nContains(\"Deinonychus\"): {0}",
          dinosaurs.Contains("Deinonychus")) + "\n";

      outputBlock.Text += String.Format("\nInsert(2, \"Compsognathus\")") + "\n";
      dinosaurs.Insert(2, "Compsognathus");

      outputBlock.Text += "\n";
      foreach (string dinosaur in dinosaurs)
      {
         outputBlock.Text += dinosaur + "\n";
      }

      outputBlock.Text += String.Format("\ndinosaurs[3]: {0}", dinosaurs[3]) + "\n";

      outputBlock.Text += "\nRemove(\"Compsognathus\")" + "\n";
      dinosaurs.Remove("Compsognathus");

      outputBlock.Text += "\n";
      foreach (string dinosaur in dinosaurs)
      {
         outputBlock.Text += dinosaur + "\n";
      }

      dinosaurs.TrimExcess();
      outputBlock.Text += "\nTrimExcess()" + "\n";
      outputBlock.Text += String.Format("Capacity: {0}", dinosaurs.Capacity) + "\n";
      outputBlock.Text += String.Format("Count: {0}", dinosaurs.Count) + "\n";

      dinosaurs.Clear();
      outputBlock.Text += "\nClear()" + "\n";
      outputBlock.Text += String.Format("Capacity: {0}", dinosaurs.Capacity) + "\n";
      outputBlock.Text += String.Format("Count: {0}", dinosaurs.Count) + "\n";
   }
}

/* 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
 */

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.