Compartir a través de


LinkedList<T> Clase

Definición

Representa una lista vinculada doble.

generic <typename T>
public ref class LinkedList : System::Collections::Generic::ICollection<T>, System::Collections::Generic::IEnumerable<T>, System::Collections::Generic::IReadOnlyCollection<T>, System::Collections::ICollection
generic <typename T>
public ref class LinkedList : System::Collections::Generic::ICollection<T>, System::Collections::Generic::IEnumerable<T>, System::Collections::Generic::IReadOnlyCollection<T>, System::Collections::ICollection, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
generic <typename T>
public ref class LinkedList : System::Collections::Generic::ICollection<T>, System::Collections::Generic::IEnumerable<T>, System::Collections::ICollection, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
generic <typename T>
public ref class LinkedList : System::Collections::Generic::ICollection<T>, System::Collections::Generic::IEnumerable<T>, System::Collections::ICollection
public class LinkedList<T> : System.Collections.Generic.ICollection<T>, System.Collections.Generic.IEnumerable<T>, System.Collections.Generic.IReadOnlyCollection<T>, System.Collections.ICollection
public class LinkedList<T> : System.Collections.Generic.ICollection<T>, System.Collections.Generic.IEnumerable<T>, System.Collections.Generic.IReadOnlyCollection<T>, System.Collections.ICollection, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
[System.Runtime.InteropServices.ComVisible(false)]
[System.Serializable]
public class LinkedList<T> : System.Collections.Generic.ICollection<T>, System.Collections.Generic.IEnumerable<T>, System.Collections.ICollection, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
[System.Runtime.InteropServices.ComVisible(false)]
[System.Serializable]
public class LinkedList<T> : System.Collections.Generic.ICollection<T>, System.Collections.Generic.IEnumerable<T>, System.Collections.Generic.IReadOnlyCollection<T>, System.Collections.ICollection, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
public class LinkedList<T> : System.Collections.Generic.ICollection<T>, System.Collections.Generic.IEnumerable<T>, System.Collections.ICollection
type LinkedList<'T> = class
    interface ICollection<'T>
    interface seq<'T>
    interface IEnumerable
    interface IReadOnlyCollection<'T>
    interface ICollection
type LinkedList<'T> = class
    interface ICollection<'T>
    interface seq<'T>
    interface IEnumerable
    interface IReadOnlyCollection<'T>
    interface ICollection
    interface IDeserializationCallback
    interface ISerializable
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Serializable>]
type LinkedList<'T> = class
    interface ICollection<'T>
    interface seq<'T>
    interface ICollection
    interface IEnumerable
    interface ISerializable
    interface IDeserializationCallback
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Serializable>]
type LinkedList<'T> = class
    interface ICollection<'T>
    interface seq<'T>
    interface IEnumerable
    interface ICollection
    interface IReadOnlyCollection<'T>
    interface ISerializable
    interface IDeserializationCallback
type LinkedList<'T> = class
    interface ICollection<'T>
    interface seq<'T>
    interface ICollection
    interface IEnumerable
Public Class LinkedList(Of T)
Implements ICollection, ICollection(Of T), IEnumerable(Of T), IReadOnlyCollection(Of T)
Public Class LinkedList(Of T)
Implements ICollection, ICollection(Of T), IDeserializationCallback, IEnumerable(Of T), IReadOnlyCollection(Of T), ISerializable
Public Class LinkedList(Of T)
Implements ICollection, ICollection(Of T), IDeserializationCallback, IEnumerable(Of T), ISerializable
Public Class LinkedList(Of T)
Implements ICollection, ICollection(Of T), IEnumerable(Of T)

Parámetros de tipo

T

Especifica el tipo de elemento de la lista vinculada.

Herencia
LinkedList<T>
Atributos
Implementaciones

Ejemplos

En el ejemplo de código siguiente se muestran muchas características de la clase LinkedList<T>.

#using <System.dll>

using namespace System;
using namespace System::Text;
using namespace System::Collections::Generic;

public ref class Example
{
public:
    static void Main()
    {
        // Create the link list.
        array<String^>^ words =
            { "the", "fox", "jumped", "over", "the", "dog" };
        LinkedList<String^>^ sentence = gcnew LinkedList<String^>(words);
        Display(sentence, "The linked list values:");
        Console::WriteLine("sentence.Contains(\"jumped\") = {0}",
            sentence->Contains("jumped"));

        // Add the word 'today' to the beginning of the linked list.
        sentence->AddFirst("today");
        Display(sentence, "Test 1: Add 'today' to beginning of the list:");

        // Move the first node to be the last node.
        LinkedListNode<String^>^ mark1 = sentence->First;
        sentence->RemoveFirst();
        sentence->AddLast(mark1);
        Display(sentence, "Test 2: Move first node to be last node:");

        // Change the last node to 'yesterday'.
        sentence->RemoveLast();
        sentence->AddLast("yesterday");
        Display(sentence, "Test 3: Change the last node to 'yesterday':");

        // Move the last node to be the first node.
        mark1 = sentence->Last;
        sentence->RemoveLast();
        sentence->AddFirst(mark1);
        Display(sentence, "Test 4: Move last node to be first node:");


        // Indicate the last occurence of 'the'.
        sentence->RemoveFirst();
        LinkedListNode<String^>^ current = sentence->FindLast("the");
        IndicateNode(current, "Test 5: Indicate last occurence of 'the':");

        // Add 'lazy' and 'old' after 'the' (the LinkedListNode named current).
        sentence->AddAfter(current, "old");
        sentence->AddAfter(current, "lazy");
        IndicateNode(current, "Test 6: Add 'lazy' and 'old' after 'the':");

        // Indicate 'fox' node.
        current = sentence->Find("fox");
        IndicateNode(current, "Test 7: Indicate the 'fox' node:");

        // Add 'quick' and 'brown' before 'fox':
        sentence->AddBefore(current, "quick");
        sentence->AddBefore(current, "brown");
        IndicateNode(current, "Test 8: Add 'quick' and 'brown' before 'fox':");

        // Keep a reference to the current node, 'fox',
        // and to the previous node in the list. Indicate the 'dog' node.
        mark1 = current;
        LinkedListNode<String^>^ mark2 = current->Previous;
        current = sentence->Find("dog");
        IndicateNode(current, "Test 9: Indicate the 'dog' node:");

        // The AddBefore method throws an InvalidOperationException
        // if you try to add a node that already belongs to a list.
        Console::WriteLine("Test 10: Throw exception by adding node (fox) already in the list:");
        try
        {
            sentence->AddBefore(current, mark1);
        }
        catch (InvalidOperationException^ ex)
        {
            Console::WriteLine("Exception message: {0}", ex->Message);
        }
        Console::WriteLine();

        // Remove the node referred to by mark1, and then add it
        // before the node referred to by current.
        // Indicate the node referred to by current.
        sentence->Remove(mark1);
        sentence->AddBefore(current, mark1);
        IndicateNode(current, "Test 11: Move a referenced node (fox) before the current node (dog):");

        // Remove the node referred to by current.
        sentence->Remove(current);
        IndicateNode(current, "Test 12: Remove current node (dog) and attempt to indicate it:");

        // Add the node after the node referred to by mark2.
        sentence->AddAfter(mark2, current);
        IndicateNode(current, "Test 13: Add node removed in test 11 after a referenced node (brown):");

        // The Remove method finds and removes the
        // first node that that has the specified value.
        sentence->Remove("old");
        Display(sentence, "Test 14: Remove node that has the value 'old':");

        // When the linked list is cast to ICollection(Of String),
        // the Add method adds a node to the end of the list.
        sentence->RemoveLast();
        ICollection<String^>^ icoll = sentence;
        icoll->Add("rhinoceros");
        Display(sentence, "Test 15: Remove last node, cast to ICollection, and add 'rhinoceros':");

        Console::WriteLine("Test 16: Copy the list to an array:");
        // Create an array with the same number of
        // elements as the inked list.
        array<String^>^ sArray = gcnew array<String^>(sentence->Count);
        sentence->CopyTo(sArray, 0);

        for each (String^ s in sArray)
        {
            Console::WriteLine(s);
        }


        // Release all the nodes.
        sentence->Clear();

        Console::WriteLine();
        Console::WriteLine("Test 17: Clear linked list. Contains 'jumped' = {0}",
            sentence->Contains("jumped"));

        Console::ReadLine();
    }

private:
    static void Display(LinkedList<String^>^ words, String^ test)
    {
        Console::WriteLine(test);
        for each (String^ word in words)
        {
            Console::Write(word + " ");
        }
        Console::WriteLine();
        Console::WriteLine();
    }

    static void IndicateNode(LinkedListNode<String^>^ node, String^ test)
    {
        Console::WriteLine(test);
        if (node->List == nullptr)
        {
            Console::WriteLine("Node '{0}' is not in the list.\n",
                node->Value);
            return;
        }

        StringBuilder^ result = gcnew StringBuilder("(" + node->Value + ")");
        LinkedListNode<String^>^ nodeP = node->Previous;

        while (nodeP != nullptr)
        {
            result->Insert(0, nodeP->Value + " ");
            nodeP = nodeP->Previous;
        }

        node = node->Next;
        while (node != nullptr)
        {
            result->Append(" " + node->Value);
            node = node->Next;
        }

        Console::WriteLine(result);
        Console::WriteLine();
    }
};

int main()
{
    Example::Main();
}

//This code example produces the following output:
//
//The linked list values:
//the fox jumped over the dog

//Test 1: Add 'today' to beginning of the list:
//today the fox jumped over the dog

//Test 2: Move first node to be last node:
//the fox jumped over the dog today

//Test 3: Change the last node to 'yesterday':
//the fox jumped over the dog yesterday

//Test 4: Move last node to be first node:
//yesterday the fox jumped over the dog

//Test 5: Indicate last occurence of 'the':
//the fox jumped over (the) dog

//Test 6: Add 'lazy' and 'old' after 'the':
//the fox jumped over (the) lazy old dog

//Test 7: Indicate the 'fox' node:
//the (fox) jumped over the lazy old dog

//Test 8: Add 'quick' and 'brown' before 'fox':
//the quick brown (fox) jumped over the lazy old dog

//Test 9: Indicate the 'dog' node:
//the quick brown fox jumped over the lazy old (dog)

//Test 10: Throw exception by adding node (fox) already in the list:
//Exception message: The LinkedList node belongs a LinkedList.

//Test 11: Move a referenced node (fox) before the current node (dog):
//the quick brown jumped over the lazy old fox (dog)

//Test 12: Remove current node (dog) and attempt to indicate it:
//Node 'dog' is not in the list.

//Test 13: Add node removed in test 11 after a referenced node (brown):
//the quick brown (dog) jumped over the lazy old fox

//Test 14: Remove node that has the value 'old':
//the quick brown dog jumped over the lazy fox

//Test 15: Remove last node, cast to ICollection, and add 'rhinoceros':
//the quick brown dog jumped over the lazy rhinoceros

//Test 16: Copy the list to an array:
//the
//quick
//brown
//dog
//jumped
//over
//the
//lazy
//rhinoceros

//Test 17: Clear linked list. Contains 'jumped' = False
//
using System;
using System.Text;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        // Create the link list.
        string[] words =
            { "the", "fox", "jumps", "over", "the", "dog" };
        LinkedList<string> sentence = new LinkedList<string>(words);
        Display(sentence, "The linked list values:");

        // Add the word 'today' to the beginning of the linked list.
        sentence.AddFirst("today");
        Display(sentence, "Test 1: Add 'today' to beginning of the list:");

        // Move the first node to be the last node.
        LinkedListNode<string> mark1 = sentence.First;
        sentence.RemoveFirst();
        sentence.AddLast(mark1);
        Display(sentence, "Test 2: Move first node to be last node:");

        // Change the last node to 'yesterday'.
        sentence.RemoveLast();
        sentence.AddLast("yesterday");
        Display(sentence, "Test 3: Change the last node to 'yesterday':");

        // Move the last node to be the first node.
        mark1 = sentence.Last;
        sentence.RemoveLast();
        sentence.AddFirst(mark1);
        Display(sentence, "Test 4: Move last node to be first node:");

        // Indicate the last occurence of 'the'.
        sentence.RemoveFirst();
        LinkedListNode<string> current = sentence.FindLast("the");
        IndicateNode(current, "Test 5: Indicate last occurence of 'the':");

        // Add 'lazy' and 'old' after 'the' (the LinkedListNode named current).
        sentence.AddAfter(current, "old");
        sentence.AddAfter(current, "lazy");
        IndicateNode(current, "Test 6: Add 'lazy' and 'old' after 'the':");

        // Indicate 'fox' node.
        current = sentence.Find("fox");
        IndicateNode(current, "Test 7: Indicate the 'fox' node:");

        // Add 'quick' and 'brown' before 'fox':
        sentence.AddBefore(current, "quick");
        sentence.AddBefore(current, "brown");
        IndicateNode(current, "Test 8: Add 'quick' and 'brown' before 'fox':");

        // Keep a reference to the current node, 'fox',
        // and to the previous node in the list. Indicate the 'dog' node.
        mark1 = current;
        LinkedListNode<string> mark2 = current.Previous;
        current = sentence.Find("dog");
        IndicateNode(current, "Test 9: Indicate the 'dog' node:");

        // The AddBefore method throws an InvalidOperationException
        // if you try to add a node that already belongs to a list.
        Console.WriteLine("Test 10: Throw exception by adding node (fox) already in the list:");
        try
        {
            sentence.AddBefore(current, mark1);
        }
        catch (InvalidOperationException ex)
        {
            Console.WriteLine("Exception message: {0}", ex.Message);
        }
        Console.WriteLine();

        // Remove the node referred to by mark1, and then add it
        // before the node referred to by current.
        // Indicate the node referred to by current.
        sentence.Remove(mark1);
        sentence.AddBefore(current, mark1);
        IndicateNode(current, "Test 11: Move a referenced node (fox) before the current node (dog):");

        // Remove the node referred to by current.
        sentence.Remove(current);
        IndicateNode(current, "Test 12: Remove current node (dog) and attempt to indicate it:");

        // Add the node after the node referred to by mark2.
        sentence.AddAfter(mark2, current);
        IndicateNode(current, "Test 13: Add node removed in test 11 after a referenced node (brown):");

        // The Remove method finds and removes the
        // first node that that has the specified value.
        sentence.Remove("old");
        Display(sentence, "Test 14: Remove node that has the value 'old':");

        // When the linked list is cast to ICollection(Of String),
        // the Add method adds a node to the end of the list.
        sentence.RemoveLast();
        ICollection<string> icoll = sentence;
        icoll.Add("rhinoceros");
        Display(sentence, "Test 15: Remove last node, cast to ICollection, and add 'rhinoceros':");

        Console.WriteLine("Test 16: Copy the list to an array:");
        // Create an array with the same number of
        // elements as the linked list.
        string[] sArray = new string[sentence.Count];
        sentence.CopyTo(sArray, 0);

        foreach (string s in sArray)
        {
            Console.WriteLine(s);
        }

        Console.WriteLine("Test 17: linked list Contains 'jumps' = {0}",
            sentence.Contains("jumps"));
        
        // Release all the nodes.
        sentence.Clear();

        Console.WriteLine();
        Console.WriteLine("Test 18: Cleared linked list Contains 'jumps' = {0}",
            sentence.Contains("jumps"));

        Console.ReadLine();
    }

    private static void Display(LinkedList<string> words, string test)
    {
        Console.WriteLine(test);
        foreach (string word in words)
        {
            Console.Write(word + " ");
        }
        Console.WriteLine();
        Console.WriteLine();
    }

    private static void IndicateNode(LinkedListNode<string> node, string test)
    {
        Console.WriteLine(test);
        if (node.List == null)
        {
            Console.WriteLine("Node '{0}' is not in the list.\n",
                node.Value);
            return;
        }

        StringBuilder result = new StringBuilder("(" + node.Value + ")");
        LinkedListNode<string> nodeP = node.Previous;

        while (nodeP != null)
        {
            result.Insert(0, nodeP.Value + " ");
            nodeP = nodeP.Previous;
        }

        node = node.Next;
        while (node != null)
        {
            result.Append(" " + node.Value);
            node = node.Next;
        }

        Console.WriteLine(result);
        Console.WriteLine();
    }
}

//This code example produces the following output:
//
//The linked list values:
//the fox jumps over the dog

//Test 1: Add 'today' to beginning of the list:
//today the fox jumps over the dog

//Test 2: Move first node to be last node:
//the fox jumps over the dog today

//Test 3: Change the last node to 'yesterday':
//the fox jumps over the dog yesterday

//Test 4: Move last node to be first node:
//yesterday the fox jumps over the dog

//Test 5: Indicate last occurence of 'the':
//the fox jumps over (the) dog

//Test 6: Add 'lazy' and 'old' after 'the':
//the fox jumps over (the) lazy old dog

//Test 7: Indicate the 'fox' node:
//the (fox) jumps over the lazy old dog

//Test 8: Add 'quick' and 'brown' before 'fox':
//the quick brown (fox) jumps over the lazy old dog

//Test 9: Indicate the 'dog' node:
//the quick brown fox jumps over the lazy old (dog)

//Test 10: Throw exception by adding node (fox) already in the list:
//Exception message: The LinkedList node belongs a LinkedList.

//Test 11: Move a referenced node (fox) before the current node (dog):
//the quick brown jumps over the lazy old fox (dog)

//Test 12: Remove current node (dog) and attempt to indicate it:
//Node 'dog' is not in the list.

//Test 13: Add node removed in test 11 after a referenced node (brown):
//the quick brown (dog) jumps over the lazy old fox

//Test 14: Remove node that has the value 'old':
//the quick brown dog jumps over the lazy fox

//Test 15: Remove last node, cast to ICollection, and add 'rhinoceros':
//the quick brown dog jumps over the lazy rhinoceros

//Test 16: Copy the list to an array:
//the
//quick
//brown
//dog
//jumps
//over
//the
//lazy
//rhinoceros

//Test 17: linked list Contains 'jumps'= True

//Test 18: Cleared linked list Contains 'jumps'  = False
//
Imports System.Text
Imports System.Collections.Generic
Public Class Example

    Public Shared Sub Main()
        ' Create the link list.
        Dim words() As String = {"the", "fox", _
            "jumps", "over", "the", "dog"}
        Dim sentence As New LinkedList(Of String)(words)
        Console.WriteLine("sentence.Contains(""jumps"") = {0}", _
            sentence.Contains("jumps"))
        Display(sentence, "The linked list values:")
        ' Add the word 'today' to the beginning of the linked list.
        sentence.AddFirst("today")
        Display(sentence, "Test 1: Add 'today' to beginning of the list:")
        ' Move the first node to be the last node.
        Dim mark1 As LinkedListNode(Of String) = sentence.First
        sentence.RemoveFirst()
        sentence.AddLast(mark1)
        Display(sentence, "Test 2: Move first node to be last node:")
        ' Change the last node to 'yesterday'.
        sentence.RemoveLast()
        sentence.AddLast("yesterday")
        Display(sentence, "Test 3: Change the last node to 'yesterday':")
        ' Move the last node to be the first node.
        mark1 = sentence.Last
        sentence.RemoveLast()
        sentence.AddFirst(mark1)
        Display(sentence, "Test 4: Move last node to be first node:")
        ' Indicate the last occurence of 'the'.
        sentence.RemoveFirst()
        Dim current As LinkedListNode(Of String) = sentence.FindLast("the")
        IndicateNode(current, "Test 5: Indicate last occurence of 'the':")
        ' Add 'lazy' and 'old' after 'the' (the LinkedListNode named current).
        sentence.AddAfter(current, "old")
        sentence.AddAfter(current, "lazy")
        IndicateNode(current, "Test 6: Add 'lazy' and 'old' after 'the':")
        ' Indicate 'fox' node.
        current = sentence.Find("fox")
        IndicateNode(current, "Test 7: Indicate the 'fox' node:")
        ' Add 'quick' and 'brown' before 'fox':
        sentence.AddBefore(current, "quick")
        sentence.AddBefore(current, "brown")
        IndicateNode(current, "Test 8: Add 'quick' and 'brown' before 'fox':")
        ' Keep a reference to the current node, 'fox',
        ' and to the previous node in the list. Indicate the 'dog' node.
        mark1 = current
        Dim mark2 As LinkedListNode(Of String) = current.Previous
        current = sentence.Find("dog")
        IndicateNode(current, "Test 9: Indicate the 'dog' node:")
        ' The AddBefore method throws an InvalidOperationException
        ' if you try to add a node that already belongs to a list.
        Console.WriteLine("Test 10: Throw exception by adding node (fox) already in the list:")
        Try
            sentence.AddBefore(current, mark1)
        Catch ex As InvalidOperationException
            Console.WriteLine("Exception message: {0}", ex.Message)
        End Try
        Console.WriteLine()
        ' Remove the node referred to by mark1, and then add it
        ' before the node referred to by current.
        ' Indicate the node referred to by current.
        sentence.Remove(mark1)
        sentence.AddBefore(current, mark1)
        IndicateNode(current, "Test 11: Move a referenced node (fox) before the current node (dog):")
        ' Remove the node referred to by current. 
        sentence.Remove(current)
        IndicateNode(current, "Test 12: Remove current node (dog) and attempt to indicate it:")
        ' Add the node after the node referred to by mark2.
        sentence.AddAfter(mark2, current)
        IndicateNode(current, "Test 13: Add node removed in test 11 after a referenced node (brown):")
        ' The Remove method finds and removes the
        ' first node that that has the specified value.
        sentence.Remove("old")
        Display(sentence, "Test 14: Remove node that has the value 'old':")
        ' When the linked list is cast to ICollection(Of String),
        ' the Add method adds a node to the end of the list.
        sentence.RemoveLast()
        Dim icoll As ICollection(Of String) = sentence
        icoll.Add("rhinoceros")
        Display(sentence, "Test 15: Remove last node, cast to ICollection, and add 'rhinoceros':")
        Console.WriteLine("Test 16: Copy the list to an array:")
        ' Create an array with the same number of
        ' elements as the inked list.
        Dim sArray() As String = New String((sentence.Count) - 1) {}
        sentence.CopyTo(sArray, 0)
        For Each s As String In sArray
            Console.WriteLine(s)
        Next

        ' Release all the nodes.
        sentence.Clear()
        Console.WriteLine()
        Console.WriteLine("Test 17: Clear linked list. Contains 'jumps' = {0}", sentence.Contains("jumps"))
        Console.ReadLine()
    End Sub

    Private Shared Sub Display(ByVal words As LinkedList(Of String), ByVal test As String)
        Console.WriteLine(test)
        For Each word As String In words
            Console.Write((word + " "))
        Next
        Console.WriteLine()
        Console.WriteLine()
    End Sub

    Private Shared Sub IndicateNode(ByVal node As LinkedListNode(Of String), ByVal test As String)
        Console.WriteLine(test)
        If IsNothing(node.List) Then
            Console.WriteLine("Node '{0}' is not in the list." & vbLf, node.Value)
            Return
        End If
        Dim result As StringBuilder = New StringBuilder(("(" _
                        + (node.Value + ")")))
        Dim nodeP As LinkedListNode(Of String) = node.Previous

        While (Not (nodeP) Is Nothing)
            result.Insert(0, (nodeP.Value + " "))
            nodeP = nodeP.Previous

        End While
        node = node.Next

        While (Not (node) Is Nothing)
            result.Append((" " + node.Value))
            node = node.Next

        End While
        Console.WriteLine(result)
        Console.WriteLine()
    End Sub
End Class
'This code example produces the following output:
'
'The linked list values:
'the fox jumps over the dog 
'Test 1: Add 'today' to beginning of the list:
'today the fox jumps over the dog

'Test 2: Move first node to be last node:
'the fox jumps over the dog today

'Test 3: Change the last node to 'yesterday':
'the fox jumps over the dog yesterday

'Test 4: Move last node to be first node:
'yesterday the fox jumps over the dog

'Test 5: Indicate last occurence of 'the':
'the fox jumps over (the) dog

'Test 6: Add 'lazy' and 'old' after 'the':
'the fox jumps over (the) lazy old dog

'Test 7: Indicate the 'fox' node:
'the (fox) jumps over the lazy old dog

'Test 8: Add 'quick' and 'brown' before 'fox':
'the quick brown (fox) jumps over the lazy old dog

'Test 9: Indicate the 'dog' node:
'the quick brown fox jumps over the lazy old (dog)

'Test 10: Throw exception by adding node (fox) already in the list:
'Exception message: The LinkedList node belongs a LinkedList.

'Test 11: Move a referenced node (fox) before the current node (dog):
'the quick brown jumps over the lazy old fox (dog)

'Test 12: Remove current node (dog) and attempt to indicate it:
'Node 'dog' is not in the list.

'Test 13: Add node removed in test 11 after a referenced node (brown):
'the quick brown (dog) jumps over the lazy old fox

'Test 14: Remove node that has the value 'old':
'the quick brown dog jumps over the lazy fox 

'Test 15: Remove last node, cast to ICollection, and add 'rhinoceros':
'the quick brown dog jumps over the lazy rhinoceros

'Test 16: Copy the list to an array:
'the
'quick
'brown
'dog
'jumps
'over
'the
'lazy
'rhinoceros

'Test 17: Clear linked list. Contains 'jumps' = False
'

Comentarios

LinkedList<T> es una lista vinculada de uso general. Admite enumeradores e implementa la interfaz de ICollection, coherente con otras clases de colección en .NET Framework.

LinkedList<T> proporciona nodos independientes de tipo LinkedListNode<T>, por lo que las operaciones de inserción y eliminación son operaciones de O(1).

Puede quitar nodos y volver a insertarlos, ya sea en la misma lista o en otra lista, lo que produce que no haya objetos adicionales asignados en el montón. Dado que la lista también mantiene un recuento interno, obtener la propiedad Count es una operación de O(1).

Cada nodo de un objeto LinkedList<T> es del tipo LinkedListNode<T>. Dado que el LinkedList<T> está doblemente vinculado, cada nodo apunta al nodo Next y hacia atrás hasta el nodo Previous.

Las listas que contienen tipos de referencia funcionan mejor cuando se crea un nodo y su valor al mismo tiempo. LinkedList<T> acepta null como una propiedad Value válida para los tipos de referencia y permite valores duplicados.

Si el LinkedList<T> está vacío, las propiedades First y Last contienen null.

La clase LinkedList<T> no admite encadenamiento, división, ciclos u otras características que pueden dejar la lista en un estado incoherente. La lista sigue siendo coherente en un único subproceso. El único escenario multiproceso admitido por LinkedList<T> es operaciones de lectura multiproceso.

Constructores

LinkedList<T>()

Inicializa una nueva instancia de la clase LinkedList<T> que está vacía.

LinkedList<T>(IEnumerable<T>)

Inicializa una nueva instancia de la clase LinkedList<T> que contiene elementos copiados del IEnumerable especificado y tiene capacidad suficiente para acomodar el número de elementos copiados.

LinkedList<T>(SerializationInfo, StreamingContext)
Obsoletos.

Inicializa una nueva instancia de la clase LinkedList<T> que se serializa con el SerializationInfo especificado y StreamingContext.

Propiedades

Count

Obtiene el número de nodos contenidos realmente en el LinkedList<T>.

First

Obtiene el primer nodo del LinkedList<T>.

Last

Obtiene el último nodo del LinkedList<T>.

Métodos

AddAfter(LinkedListNode<T>, LinkedListNode<T>)

Agrega el nuevo nodo especificado después del nodo existente especificado en el LinkedList<T>.

AddAfter(LinkedListNode<T>, T)

Agrega un nuevo nodo que contiene el valor especificado después del nodo existente especificado en el LinkedList<T>.

AddBefore(LinkedListNode<T>, LinkedListNode<T>)

Agrega el nuevo nodo especificado antes del nodo existente especificado en el LinkedList<T>.

AddBefore(LinkedListNode<T>, T)

Agrega un nuevo nodo que contiene el valor especificado antes del nodo existente especificado en el LinkedList<T>.

AddFirst(LinkedListNode<T>)

Agrega el nuevo nodo especificado al principio del LinkedList<T>.

AddFirst(T)

Agrega un nuevo nodo que contiene el valor especificado al principio del LinkedList<T>.

AddLast(LinkedListNode<T>)

Agrega el nuevo nodo especificado al final del LinkedList<T>.

AddLast(T)

Agrega un nuevo nodo que contiene el valor especificado al final del LinkedList<T>.

Clear()

Quita todos los nodos de la LinkedList<T>.

Contains(T)

Determina si un valor está en el LinkedList<T>.

CopyTo(T[], Int32)

Copia toda la LinkedList<T> en una Arrayunidimensional compatible, empezando por el índice especificado de la matriz de destino.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
Find(T)

Busca el primer nodo que contiene el valor especificado.

FindLast(T)

Busca el último nodo que contiene el valor especificado.

GetEnumerator()

Devuelve un enumerador que recorre en iteración el LinkedList<T>.

GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetObjectData(SerializationInfo, StreamingContext)
Obsoletos.

Implementa la interfaz ISerializable y devuelve los datos necesarios para serializar la instancia de LinkedList<T>.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
OnDeserialization(Object)

Implementa la interfaz ISerializable y genera el evento de deserialización cuando se completa la deserialización.

Remove(LinkedListNode<T>)

Quita el nodo especificado del LinkedList<T>.

Remove(T)

Quita la primera aparición del valor especificado de la LinkedList<T>.

RemoveFirst()

Quita el nodo al principio del LinkedList<T>.

RemoveLast()

Quita el nodo al final del LinkedList<T>.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

ICollection.CopyTo(Array, Int32)

Copia los elementos del ICollection en un Array, empezando por un índice de Array determinado.

ICollection.IsSynchronized

Obtiene un valor que indica si el acceso a la ICollection está sincronizado (seguro para subprocesos).

ICollection.SyncRoot

Obtiene un objeto que se puede usar para sincronizar el acceso a la ICollection.

ICollection<T>.Add(T)

Agrega un elemento al final del ICollection<T>.

ICollection<T>.IsReadOnly

Obtiene un valor que indica si el ICollection<T> es de solo lectura.

IEnumerable.GetEnumerator()

Devuelve un enumerador que recorre en iteración la lista vinculada como una colección.

IEnumerable<T>.GetEnumerator()

Devuelve un enumerador que recorre en iteración una colección.

Métodos de extensión

ToFrozenDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Crea un FrozenDictionary<TKey,TValue> a partir de un IEnumerable<T> según la función del selector de claves especificada.

ToFrozenDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)

Crea un FrozenDictionary<TKey,TValue> a partir de un IEnumerable<T> según las funciones especificadas del selector de claves y del selector de elementos.

ToFrozenSet<T>(IEnumerable<T>, IEqualityComparer<T>)

Crea un FrozenSet<T> con los valores especificados.

ToImmutableArray<TSource>(IEnumerable<TSource>)

Crea una matriz inmutable a partir de la colección especificada.

ToImmutableDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Construye un diccionario inmutable a partir de una colección de elementos existente, aplicando una función de transformación a las claves de origen.

ToImmutableDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Construye un diccionario inmutable basado en alguna transformación de una secuencia.

ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>)

Enumera y transforma una secuencia y genera un diccionario inmutable de su contenido.

ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>)

Enumera y transforma una secuencia y genera un diccionario inmutable de su contenido mediante el comparador de claves especificado.

ToImmutableDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IEqualityComparer<TKey>, IEqualityComparer<TValue>)

Enumera y transforma una secuencia y genera un diccionario inmutable de su contenido mediante los comparadores de clave y valor especificados.

ToImmutableHashSet<TSource>(IEnumerable<TSource>)

Enumera una secuencia y genera un conjunto hash inmutable de su contenido.

ToImmutableHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>)

Enumera una secuencia, genera un conjunto hash inmutable de su contenido y usa el comparador de igualdad especificado para el tipo de conjunto.

ToImmutableList<TSource>(IEnumerable<TSource>)

Enumera una secuencia y genera una lista inmutable de su contenido.

ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>)

Enumera y transforma una secuencia y genera un diccionario ordenado inmutable de su contenido.

ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>)

Enumera y transforma una secuencia y genera un diccionario ordenado inmutable de su contenido mediante el comparador de claves especificado.

ToImmutableSortedDictionary<TSource,TKey,TValue>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TValue>, IComparer<TKey>, IEqualityComparer<TValue>)

Enumera y transforma una secuencia y genera un diccionario ordenado inmutable de su contenido mediante los comparadores de clave y valor especificados.

ToImmutableSortedSet<TSource>(IEnumerable<TSource>)

Enumera una secuencia y genera un conjunto ordenado inmutable de su contenido.

ToImmutableSortedSet<TSource>(IEnumerable<TSource>, IComparer<TSource>)

Enumera una secuencia, genera un conjunto ordenado inmutable de su contenido y usa el comparador especificado.

CopyToDataTable<T>(IEnumerable<T>)

Devuelve un DataTable que contiene copias de los objetos DataRow, dado un objeto de entrada IEnumerable<T> donde el parámetro genérico T es DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)

Copia DataRow objetos en el DataTableespecificado, dado un objeto IEnumerable<T> de entrada donde se DataRowel parámetro genérico T .

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)

Copia DataRow objetos en el DataTableespecificado, dado un objeto IEnumerable<T> de entrada donde se DataRowel parámetro genérico T .

Aggregate<TSource>(IEnumerable<TSource>, Func<TSource,TSource,TSource>)

Aplica una función de acumulador a través de una secuencia.

Aggregate<TSource,TAccumulate>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>)

Aplica una función de acumulador a través de una secuencia. El valor de inicialización especificado se usa como valor de acumulador inicial.

Aggregate<TSource,TAccumulate,TResult>(IEnumerable<TSource>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, Func<TAccumulate,TResult>)

Aplica una función de acumulador a través de una secuencia. El valor de inicialización especificado se usa como valor de acumulador inicial y la función especificada se usa para seleccionar el valor de resultado.

AggregateBy<TSource,TKey,TAccumulate>(IEnumerable<TSource>, Func<TSource, TKey>, TAccumulate, Func<TAccumulate,TSource,TAccumulate>, IEqualityComparer<TKey>)

Representa una lista vinculada doble.

AggregateBy<TSource,TKey,TAccumulate>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TKey,TAccumulate>, Func<TAccumulate,TSource,TAccumulate>, IEqualityComparer<TKey>)

Representa una lista vinculada doble.

All<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Determina si todos los elementos de una secuencia cumplen una condición.

Any<TSource>(IEnumerable<TSource>)

Determina si una secuencia contiene elementos.

Any<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Determina si algún elemento de una secuencia cumple una condición.

Append<TSource>(IEnumerable<TSource>, TSource)

Anexa un valor al final de la secuencia.

AsEnumerable<TSource>(IEnumerable<TSource>)

Devuelve la entrada con tipo IEnumerable<T>.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)

Calcula el promedio de una secuencia de Decimal valores que se obtienen invocando una función de transformación en cada elemento de la secuencia de entrada.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Double>)

Calcula el promedio de una secuencia de Double valores que se obtienen invocando una función de transformación en cada elemento de la secuencia de entrada.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)

Calcula el promedio de una secuencia de Int32 valores que se obtienen invocando una función de transformación en cada elemento de la secuencia de entrada.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)

Calcula el promedio de una secuencia de Int64 valores que se obtienen invocando una función de transformación en cada elemento de la secuencia de entrada.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)

Calcula el promedio de una secuencia de valores que aceptan valores NULL Decimal que se obtienen invocando una función de transformación en cada elemento de la secuencia de entrada.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)

Calcula el promedio de una secuencia de valores que aceptan valores NULL Double que se obtienen invocando una función de transformación en cada elemento de la secuencia de entrada.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)

Calcula el promedio de una secuencia de valores que aceptan valores NULL Int32 que se obtienen invocando una función de transformación en cada elemento de la secuencia de entrada.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)

Calcula el promedio de una secuencia de valores que aceptan valores NULL Int64 que se obtienen invocando una función de transformación en cada elemento de la secuencia de entrada.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)

Calcula el promedio de una secuencia de valores que aceptan valores NULL Single que se obtienen invocando una función de transformación en cada elemento de la secuencia de entrada.

Average<TSource>(IEnumerable<TSource>, Func<TSource,Single>)

Calcula el promedio de una secuencia de Single valores que se obtienen invocando una función de transformación en cada elemento de la secuencia de entrada.

Cast<TResult>(IEnumerable)

Convierte los elementos de un IEnumerable al tipo especificado.

Chunk<TSource>(IEnumerable<TSource>, Int32)

Divide los elementos de una secuencia en fragmentos de tamaño como máximo size.

Concat<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

Concatena dos secuencias.

Contains<TSource>(IEnumerable<TSource>, TSource)

Determina si una secuencia contiene un elemento especificado mediante el comparador de igualdad predeterminado.

Contains<TSource>(IEnumerable<TSource>, TSource, IEqualityComparer<TSource>)

Determina si una secuencia contiene un elemento especificado mediante un IEqualityComparer<T>especificado.

Count<TSource>(IEnumerable<TSource>)

Devuelve el número de elementos de una secuencia.

Count<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Devuelve un número que representa el número de elementos de la secuencia especificada que cumplen una condición.

CountBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Representa una lista vinculada doble.

DefaultIfEmpty<TSource>(IEnumerable<TSource>)

Devuelve los elementos de la secuencia especificada o el valor predeterminado del parámetro de tipo en una colección singleton si la secuencia está vacía.

DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource)

Devuelve los elementos de la secuencia especificada o el valor especificado en una colección singleton si la secuencia está vacía.

Distinct<TSource>(IEnumerable<TSource>)

Devuelve distintos elementos de una secuencia mediante el comparador de igualdad predeterminado para comparar valores.

Distinct<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>)

Devuelve distintos elementos de una secuencia mediante un IEqualityComparer<T> especificado para comparar valores.

DistinctBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Devuelve distintos elementos de una secuencia según una función de selector de claves especificada.

DistinctBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Devuelve distintos elementos de una secuencia según una función de selector de claves especificada y utilizando un comparador especificado para comparar claves.

ElementAt<TSource>(IEnumerable<TSource>, Index)

Devuelve el elemento en un índice especificado de una secuencia.

ElementAt<TSource>(IEnumerable<TSource>, Int32)

Devuelve el elemento en un índice especificado de una secuencia.

ElementAtOrDefault<TSource>(IEnumerable<TSource>, Index)

Devuelve el elemento de un índice especificado en una secuencia o un valor predeterminado si el índice está fuera del intervalo.

ElementAtOrDefault<TSource>(IEnumerable<TSource>, Int32)

Devuelve el elemento de un índice especificado en una secuencia o un valor predeterminado si el índice está fuera del intervalo.

Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

Genera la diferencia de conjunto de dos secuencias mediante el comparador de igualdad predeterminado para comparar valores.

Except<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)

Genera la diferencia de conjunto de dos secuencias usando el IEqualityComparer<T> especificado para comparar valores.

ExceptBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>)

Genera la diferencia de conjunto de dos secuencias según una función de selector de claves especificada.

ExceptBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Genera la diferencia de conjunto de dos secuencias según una función de selector de claves especificada.

First<TSource>(IEnumerable<TSource>)

Devuelve el primer elemento de una secuencia.

First<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Devuelve el primer elemento de una secuencia que satisface una condición especificada.

FirstOrDefault<TSource>(IEnumerable<TSource>)

Devuelve el primer elemento de una secuencia o un valor predeterminado si la secuencia no contiene elementos.

FirstOrDefault<TSource>(IEnumerable<TSource>, TSource)

Devuelve el primer elemento de una secuencia o un valor predeterminado especificado si la secuencia no contiene elementos.

FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Devuelve el primer elemento de la secuencia que satisface una condición o un valor predeterminado si no se encuentra ningún elemento de este tipo.

FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource)

Devuelve el primer elemento de la secuencia que satisface una condición o un valor predeterminado especificado si no se encuentra ningún elemento de este tipo.

GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Agrupa los elementos de una secuencia según una función de selector de claves especificada.

GroupBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Agrupa los elementos de una secuencia según una función de selector de claves especificada y compara las claves mediante un comparador especificado.

GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>)

Agrupa los elementos de una secuencia según una función de selector de claves especificada y proyecta los elementos de cada grupo mediante una función especificada.

GroupBy<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)

Agrupa los elementos de una secuencia según una función del selector de claves. Las claves se comparan mediante un comparador y los elementos de cada grupo se proyectan mediante una función especificada.

GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>)

Agrupa los elementos de una secuencia según una función de selector de claves especificada y crea un valor de resultado a partir de cada grupo y su clave.

GroupBy<TSource,TKey,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TKey,IEnumerable<TSource>,TResult>, IEqualityComparer<TKey>)

Agrupa los elementos de una secuencia según una función de selector de claves especificada y crea un valor de resultado a partir de cada grupo y su clave. Las claves se comparan mediante un comparador especificado.

GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>,TResult>)

Agrupa los elementos de una secuencia según una función de selector de claves especificada y crea un valor de resultado a partir de cada grupo y su clave. Los elementos de cada grupo se proyectan mediante una función especificada.

GroupBy<TSource,TKey,TElement,TResult>(IEnumerable<TSource>, Func<TSource, TKey>, Func<TSource,TElement>, Func<TKey,IEnumerable<TElement>, TResult>, IEqualityComparer<TKey>)

Agrupa los elementos de una secuencia según una función de selector de claves especificada y crea un valor de resultado a partir de cada grupo y su clave. Los valores de clave se comparan mediante un comparador especificado y los elementos de cada grupo se proyectan mediante una función especificada.

GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>)

Correlaciona los elementos de dos secuencias en función de la igualdad de claves y agrupa los resultados. El comparador de igualdad predeterminado se usa para comparar claves.

GroupJoin<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,IEnumerable<TInner>, TResult>, IEqualityComparer<TKey>)

Correlaciona los elementos de dos secuencias en función de la igualdad de claves y agrupa los resultados. Se usa un IEqualityComparer<T> especificado para comparar claves.

Index<TSource>(IEnumerable<TSource>)

Devuelve un enumerable que incorpora el índice del elemento en una tupla.

Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

Genera la intersección de conjunto de dos secuencias mediante el comparador de igualdad predeterminado para comparar valores.

Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)

Genera la intersección de conjunto de dos secuencias mediante el IEqualityComparer<T> especificado para comparar valores.

IntersectBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>)

Genera la intersección de conjunto de dos secuencias según una función de selector de claves especificada.

IntersectBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TKey>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Genera la intersección de conjunto de dos secuencias según una función de selector de claves especificada.

Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>)

Correlaciona los elementos de dos secuencias en función de las claves coincidentes. El comparador de igualdad predeterminado se usa para comparar claves.

Join<TOuter,TInner,TKey,TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter,TKey>, Func<TInner,TKey>, Func<TOuter,TInner,TResult>, IEqualityComparer<TKey>)

Correlaciona los elementos de dos secuencias en función de las claves coincidentes. Se usa un IEqualityComparer<T> especificado para comparar claves.

Last<TSource>(IEnumerable<TSource>)

Devuelve el último elemento de una secuencia.

Last<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Devuelve el último elemento de una secuencia que satisface una condición especificada.

LastOrDefault<TSource>(IEnumerable<TSource>)

Devuelve el último elemento de una secuencia o un valor predeterminado si la secuencia no contiene elementos.

LastOrDefault<TSource>(IEnumerable<TSource>, TSource)

Devuelve el último elemento de una secuencia o un valor predeterminado especificado si la secuencia no contiene elementos.

LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Devuelve el último elemento de una secuencia que satisface una condición o un valor predeterminado si no se encuentra ningún elemento de este tipo.

LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource)

Devuelve el último elemento de una secuencia que satisface una condición o un valor predeterminado especificado si no se encuentra ningún elemento de este tipo.

LongCount<TSource>(IEnumerable<TSource>)

Devuelve un Int64 que representa el número total de elementos de una secuencia.

LongCount<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Devuelve un Int64 que representa el número de elementos de una secuencia que cumplen una condición.

Max<TSource>(IEnumerable<TSource>)

Devuelve el valor máximo de una secuencia genérica.

Max<TSource>(IEnumerable<TSource>, IComparer<TSource>)

Devuelve el valor máximo de una secuencia genérica.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo Decimal.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo Double.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo Int32.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo Int64.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo que acepta valores NULL Decimal.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo que acepta valores NULL Double.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo que acepta valores NULL Int32.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo que acepta valores NULL Int64.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo que acepta valores NULL Single.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo Single.

Max<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)

Invoca una función de transformación en cada elemento de una secuencia genérica y devuelve el valor resultante máximo.

MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Devuelve el valor máximo de una secuencia genérica según una función de selector de claves especificada.

MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)

Devuelve el valor máximo de una secuencia genérica según una función de selector de claves y un comparador de claves especificados.

Min<TSource>(IEnumerable<TSource>)

Devuelve el valor mínimo de una secuencia genérica.

Min<TSource>(IEnumerable<TSource>, IComparer<TSource>)

Devuelve el valor mínimo de una secuencia genérica.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor mínimo Decimal.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Double>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor mínimo Double.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor mínimo Int32.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor mínimo Int64.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor mínimo que acepta valores NULL Decimal.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor mínimo que acepta valores NULL Double.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor mínimo que acepta valores NULL Int32.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor mínimo que acepta valores NULL Int64.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor mínimo que acepta valores NULL Single.

Min<TSource>(IEnumerable<TSource>, Func<TSource,Single>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor mínimo Single.

Min<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)

Invoca una función de transformación en cada elemento de una secuencia genérica y devuelve el valor resultante mínimo.

MinBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Devuelve el valor mínimo de una secuencia genérica según una función de selector de claves especificada.

MinBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)

Devuelve el valor mínimo de una secuencia genérica según una función de selector de claves y un comparador de claves especificados.

OfType<TResult>(IEnumerable)

Filtra los elementos de un IEnumerable en función de un tipo especificado.

Order<T>(IEnumerable<T>)

Ordena los elementos de una secuencia en orden ascendente.

Order<T>(IEnumerable<T>, IComparer<T>)

Ordena los elementos de una secuencia en orden ascendente.

OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Ordena los elementos de una secuencia en orden ascendente según una clave.

OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)

Ordena los elementos de una secuencia en orden ascendente mediante un comparador especificado.

OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Ordena los elementos de una secuencia en orden descendente según una clave.

OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)

Ordena los elementos de una secuencia en orden descendente mediante un comparador especificado.

OrderDescending<T>(IEnumerable<T>)

Ordena los elementos de una secuencia en orden descendente.

OrderDescending<T>(IEnumerable<T>, IComparer<T>)

Ordena los elementos de una secuencia en orden descendente.

Prepend<TSource>(IEnumerable<TSource>, TSource)

Agrega un valor al principio de la secuencia.

Reverse<TSource>(IEnumerable<TSource>)

Invierte el orden de los elementos de una secuencia.

Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)

Proyecta cada elemento de una secuencia en un nuevo formulario.

Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,TResult>)

Proyecta cada elemento de una secuencia en un nuevo formulario mediante la incorporación del índice del elemento.

SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TResult>>)

Proyecta cada elemento de una secuencia en una IEnumerable<T> y aplana las secuencias resultantes en una secuencia.

SelectMany<TSource,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TResult>>)

Proyecta cada elemento de una secuencia en una IEnumerable<T>y aplana las secuencias resultantes en una secuencia. El índice de cada elemento de origen se usa en la forma proyectada de ese elemento.

SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>)

Proyecta cada elemento de una secuencia en un IEnumerable<T>, aplana las secuencias resultantes en una secuencia e invoca una función del selector de resultados en cada elemento de la misma.

SelectMany<TSource,TCollection,TResult>(IEnumerable<TSource>, Func<TSource,Int32,IEnumerable<TCollection>>, Func<TSource,TCollection,TResult>)

Proyecta cada elemento de una secuencia en un IEnumerable<T>, aplana las secuencias resultantes en una secuencia e invoca una función del selector de resultados en cada elemento de la misma. El índice de cada elemento de origen se usa en la forma proyectada intermedia de ese elemento.

SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

Determina si dos secuencias son iguales comparando los elementos mediante el comparador de igualdad predeterminado para su tipo.

SequenceEqual<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)

Determina si dos secuencias son iguales comparando sus elementos mediante un IEqualityComparer<T>especificado.

Single<TSource>(IEnumerable<TSource>)

Devuelve el único elemento de una secuencia y produce una excepción si no hay exactamente un elemento en la secuencia.

Single<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Devuelve el único elemento de una secuencia que satisface una condición especificada y produce una excepción si existe más de un elemento de este tipo.

SingleOrDefault<TSource>(IEnumerable<TSource>)

Devuelve el único elemento de una secuencia o un valor predeterminado si la secuencia está vacía; Este método produce una excepción si hay más de un elemento en la secuencia.

SingleOrDefault<TSource>(IEnumerable<TSource>, TSource)

Devuelve el único elemento de una secuencia o un valor predeterminado especificado si la secuencia está vacía; Este método produce una excepción si hay más de un elemento en la secuencia.

SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Devuelve el único elemento de una secuencia que satisface una condición especificada o un valor predeterminado si no existe dicho elemento; Este método produce una excepción si más de un elemento cumple la condición.

SingleOrDefault<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>, TSource)

Devuelve el único elemento de una secuencia que satisface una condición especificada o un valor predeterminado especificado si no existe dicho elemento; Este método produce una excepción si más de un elemento cumple la condición.

Skip<TSource>(IEnumerable<TSource>, Int32)

Omite un número especificado de elementos en una secuencia y, a continuación, devuelve los elementos restantes.

SkipLast<TSource>(IEnumerable<TSource>, Int32)

Devuelve una nueva colección enumerable que contiene los elementos de source con los últimos elementos count de la colección de origen omitidos.

SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Omite los elementos de una secuencia siempre que una condición especificada sea true y, a continuación, devuelve los elementos restantes.

SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)

Omite los elementos de una secuencia siempre que una condición especificada sea true y, a continuación, devuelve los elementos restantes. El índice del elemento se usa en la lógica de la función de predicado.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)

Calcula la suma de la secuencia de Decimal valores que se obtienen invocando una función de transformación en cada elemento de la secuencia de entrada.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>)

Calcula la suma de la secuencia de Double valores que se obtienen invocando una función de transformación en cada elemento de la secuencia de entrada.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)

Calcula la suma de la secuencia de Int32 valores que se obtienen invocando una función de transformación en cada elemento de la secuencia de entrada.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)

Calcula la suma de la secuencia de Int64 valores que se obtienen invocando una función de transformación en cada elemento de la secuencia de entrada.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)

Calcula la suma de la secuencia de valores Decimal que aceptan valores NULL que se obtienen invocando una función de transformación en cada elemento de la secuencia de entrada.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)

Calcula la suma de la secuencia de valores Double que aceptan valores NULL que se obtienen invocando una función de transformación en cada elemento de la secuencia de entrada.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)

Calcula la suma de la secuencia de valores Int32 que aceptan valores NULL que se obtienen invocando una función de transformación en cada elemento de la secuencia de entrada.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)

Calcula la suma de la secuencia de valores Int64 que aceptan valores NULL que se obtienen invocando una función de transformación en cada elemento de la secuencia de entrada.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)

Calcula la suma de la secuencia de valores Single que aceptan valores NULL que se obtienen invocando una función de transformación en cada elemento de la secuencia de entrada.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Single>)

Calcula la suma de la secuencia de Single valores que se obtienen invocando una función de transformación en cada elemento de la secuencia de entrada.

Take<TSource>(IEnumerable<TSource>, Int32)

Devuelve un número especificado de elementos contiguos desde el inicio de una secuencia.

Take<TSource>(IEnumerable<TSource>, Range)

Devuelve un intervalo especificado de elementos contiguos de una secuencia.

TakeLast<TSource>(IEnumerable<TSource>, Int32)

Devuelve una nueva colección enumerable que contiene los últimos elementos count de source.

TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Devuelve elementos de una secuencia siempre que se cumpla una condición especificada.

TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)

Devuelve elementos de una secuencia siempre que se cumpla una condición especificada. El índice del elemento se usa en la lógica de la función de predicado.

ToArray<TSource>(IEnumerable<TSource>)

Crea una matriz a partir de un IEnumerable<T>.

ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Crea un Dictionary<TKey,TValue> a partir de un IEnumerable<T> según una función de selector de claves especificada.

ToDictionary<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Crea un Dictionary<TKey,TValue> a partir de un IEnumerable<T> según una función de selector de claves y un comparador de claves especificados.

ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>)

Crea un Dictionary<TKey,TValue> a partir de un IEnumerable<T> según las funciones especificadas del selector de claves y del selector de elementos.

ToDictionary<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)

Crea un Dictionary<TKey,TValue> a partir de un IEnumerable<T> según una función de selector de claves especificada, un comparador y una función de selector de elementos.

ToHashSet<TSource>(IEnumerable<TSource>)

Crea un HashSet<T> a partir de un IEnumerable<T>.

ToHashSet<TSource>(IEnumerable<TSource>, IEqualityComparer<TSource>)

Crea un HashSet<T> a partir de un IEnumerable<T> mediante el comparer para comparar claves.

ToList<TSource>(IEnumerable<TSource>)

Crea un List<T> a partir de un IEnumerable<T>.

ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Crea un Lookup<TKey,TElement> a partir de un IEnumerable<T> según una función de selector de claves especificada.

ToLookup<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Crea un Lookup<TKey,TElement> a partir de un IEnumerable<T> según una función de selector de claves y un comparador de claves especificados.

ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>)

Crea un Lookup<TKey,TElement> a partir de un IEnumerable<T> según las funciones especificadas del selector de claves y del selector de elementos.

ToLookup<TSource,TKey,TElement>(IEnumerable<TSource>, Func<TSource,TKey>, Func<TSource,TElement>, IEqualityComparer<TKey>)

Crea un Lookup<TKey,TElement> a partir de un IEnumerable<T> según una función de selector de claves especificada, un comparador y una función de selector de elementos.

TryGetNonEnumeratedCount<TSource>(IEnumerable<TSource>, Int32)

Intenta determinar el número de elementos de una secuencia sin forzar una enumeración.

Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)

Genera la unión de conjunto de dos secuencias mediante el comparador de igualdad predeterminado.

Union<TSource>(IEnumerable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)

Genera la unión de conjunto de dos secuencias mediante un IEqualityComparer<T>especificado.

UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>)

Genera la unión de conjunto de dos secuencias según una función de selector de claves especificada.

UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)

Genera la unión de conjunto de dos secuencias según una función de selector de claves especificada.

Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Filtra una secuencia de valores en función de un predicado.

Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)

Filtra una secuencia de valores en función de un predicado. El índice de cada elemento se usa en la lógica de la función de predicado.

Zip<TFirst,TSecond>(IEnumerable<TFirst>, IEnumerable<TSecond>)

Genera una secuencia de tuplas con elementos de las dos secuencias especificadas.

Zip<TFirst,TSecond,TThird>(IEnumerable<TFirst>, IEnumerable<TSecond>, IEnumerable<TThird>)

Genera una secuencia de tuplas con elementos de las tres secuencias especificadas.

Zip<TFirst,TSecond,TResult>(IEnumerable<TFirst>, IEnumerable<TSecond>, Func<TFirst,TSecond,TResult>)

Aplica una función especificada a los elementos correspondientes de dos secuencias, lo que genera una secuencia de los resultados.

AsParallel(IEnumerable)

Habilita la paralelización de una consulta.

AsParallel<TSource>(IEnumerable<TSource>)

Habilita la paralelización de una consulta.

AsQueryable(IEnumerable)

Convierte un IEnumerable en un IQueryable.

AsQueryable<TElement>(IEnumerable<TElement>)

Convierte un IEnumerable<T> genérico en un IQueryable<T>genérico.

Ancestors<T>(IEnumerable<T>)

Devuelve una colección de elementos que contiene los antecesores de todos los nodos de la colección de origen.

Ancestors<T>(IEnumerable<T>, XName)

Devuelve una colección filtrada de elementos que contiene los antecesores de todos los nodos de la colección de origen. En la colección solo se incluyen los elementos que tienen una XName coincidente.

DescendantNodes<T>(IEnumerable<T>)

Devuelve una colección de los nodos descendientes de todos los documentos y elementos de la colección de origen.

Descendants<T>(IEnumerable<T>)

Devuelve una colección de elementos que contiene los elementos descendientes de cada elemento y documento de la colección de origen.

Descendants<T>(IEnumerable<T>, XName)

Devuelve una colección filtrada de elementos que contiene los elementos descendientes de todos los elementos y documentos de la colección de origen. En la colección solo se incluyen los elementos que tienen una XName coincidente.

Elements<T>(IEnumerable<T>)

Devuelve una colección de los elementos secundarios de cada elemento y documento de la colección de origen.

Elements<T>(IEnumerable<T>, XName)

Devuelve una colección filtrada de los elementos secundarios de cada elemento y documento de la colección de origen. En la colección solo se incluyen los elementos que tienen una XName coincidente.

InDocumentOrder<T>(IEnumerable<T>)

Devuelve una colección de nodos que contiene todos los nodos de la colección de origen, ordenados en orden de documento.

Nodes<T>(IEnumerable<T>)

Devuelve una colección de los nodos secundarios de todos los documentos y elementos de la colección de origen.

Remove<T>(IEnumerable<T>)

Quita todos los nodos de la colección de origen de su nodo primario.

Se aplica a

Seguridad para subprocesos

Este tipo no es seguro para subprocesos. Si varios subprocesos deben tener acceso a la LinkedList<T>, deberá implementar su propio mecanismo de sincronización.

Un LinkedList<T> puede admitir varios lectores simultáneamente, siempre y cuando no se modifique la colección. Incluso así, la enumeración a través de una colección no es intrínsecamente un procedimiento seguro para subprocesos. En el caso poco frecuente en el que una enumeración sostiene accesos de escritura, la colección debe bloquearse durante toda la enumeración. Para permitir que varios subprocesos puedan acceder a la colección para leer y escribir, debe implementar su propia sincronización.

Consulte también