List<T>.Count Property

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

Gets the number of elements actually contained in the List<T>.

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

Syntax

'Declaration
Public ReadOnly Property Count As Integer
public int Count { get; }

Property Value

Type: System.Int32
The number of elements actually contained in the List<T>.

Implements

ICollection<T>.Count
ICollection.Count

Remarks

Capacity is the number of elements that the List<T> can store before resizing is required. Count is the number of elements that are actually in the List<T>.

Capacity is always greater than or equal to Count. If Count exceeds Capacity while adding elements, the capacity is increased by automatically reallocating the internal array before copying the old elements and adding the new elements.

Retrieving the value of this property is an O(1) operation.

Examples

The following code example shows the value of the Count property at various points in the life of a list. After the list has been created and populated and its elements displayed, the Capacity and Count properties are displayed. These properties are displayed again after the TrimExcess method has been called, and again after the contents of the list are cleared.

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.