ExpandoObject ExpandoObject ExpandoObject ExpandoObject Class

Definición

Representa un objeto cuyos miembros se pueden agregar y quitar de forma dinámica en tiempo de ejecución.Represents an object whose members can be dynamically added and removed at run time.

public ref class ExpandoObject sealed : System::Collections::Generic::ICollection<System::Collections::Generic::KeyValuePair<System::String ^, System::Object ^>>, System::Collections::Generic::IDictionary<System::String ^, System::Object ^>, System::Collections::Generic::IEnumerable<System::Collections::Generic::KeyValuePair<System::String ^, System::Object ^>>, System::ComponentModel::INotifyPropertyChanged, System::Dynamic::IDynamicMetaObjectProvider
public sealed class ExpandoObject : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string,object>>, System.Collections.Generic.IDictionary<string,object>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string,object>>, System.ComponentModel.INotifyPropertyChanged, System.Dynamic.IDynamicMetaObjectProvider
type ExpandoObject = class
    interface IDynamicMetaObjectProvider
    interface IDictionary<string, obj>
    interface INotifyPropertyChanged
    interface ICollection<KeyValuePair<string, obj>>
    interface seq<KeyValuePair<string, obj>>
    interface IEnumerable
Public NotInheritable Class ExpandoObject
Implements ICollection(Of KeyValuePair(Of String, Object)), IDictionary(Of String, Object), IDynamicMetaObjectProvider, IEnumerable(Of KeyValuePair(Of String, Object)), INotifyPropertyChanged
Herencia
ExpandoObjectExpandoObjectExpandoObjectExpandoObject
Implementaciones

Comentarios

La ExpandoObject clase le permite agregar y eliminar miembros de sus instancias en tiempo de ejecución y también establecer y obtener valores de estos miembros.The ExpandoObject class enables you to add and delete members of its instances at run time and also to set and get values of these members. Esta clase admite el enlace dinámico, que permite usar sintaxis estándar como sampleObject.sampleMember en lugar de una sintaxis más compleja como. sampleObject.GetAttribute("sampleMember")This class supports dynamic binding, which enables you to use standard syntax like sampleObject.sampleMember instead of more complex syntax like sampleObject.GetAttribute("sampleMember").

La ExpandoObject clase implementa la interfaz IDynamicMetaObjectProviderestándar de Dynamic Language Runtime (DLR), que permite compartir instancias de la ExpandoObject clase entre lenguajes que admiten el modelo de interoperabilidad de DLR.The ExpandoObject class implements the standard Dynamic Language Runtime (DLR) interface IDynamicMetaObjectProvider, which enables you to share instances of the ExpandoObject class between languages that support the DLR interoperability model. Por ejemplo, puede crear una instancia de la ExpandoObject clase en C# y, a continuación, pasarla a una función de IronPython.For example, you can create an instance of the ExpandoObject class in C# and then pass it to an IronPython function. Para obtener más información, vea información general sobre Dynamic Language Runtime e introducción a C# ExpandoObject en el sitio web de preguntas más frecuentes.For more information, see Dynamic Language Runtime Overview and Introducing the ExpandoObject on the C# Frequently Asked Questions Web site.

La ExpandoObject clase es una implementación del concepto de objeto dinámico que habilita la obtención, el establecimiento y la invocación de miembros.The ExpandoObject class is an implementation of the dynamic object concept that enables getting, setting, and invoking members. Si desea definir tipos que tienen su propia semántica de envío dinámico, use la DynamicObject clase.If you want to define types that have their own dynamic dispatch semantics, use the DynamicObject class. Si desea definir el modo en que los objetos dinámicos participan en el protocolo de interoperabilidad y administrar el almacenamiento en caché de la distribución IDynamicMetaObjectProvider dinámica rápida de DLR, cree su propia implementación de la interfaz.If you want to define how dynamic objects participate in the interoperability protocol and manage DLR fast dynamic dispatch caching, create your own implementation of the IDynamicMetaObjectProvider interface.

Crear una instanciaCreating an Instance

En C#, para habilitar el enlace en tiempo de ejecución de ExpandoObject una instancia de la clase, dynamic debe utilizar la palabra clave.In C#, to enable late binding for an instance of the ExpandoObject class, you must use the dynamic keyword. Para obtener más información, vea Uso del tipo dynamic.For more information, see Using Type dynamic.

En Visual Basic, las operaciones dinámicas son compatibles con el enlace en tiempo de ejecución.In Visual Basic, dynamic operations are supported by late binding. Para obtener más información, vea enlace anticipado y en tiempo de ejecución.For more information, see Early and Late Binding.

En el ejemplo de código siguiente se muestra cómo crear una instancia ExpandoObject de la clase.The following code example demonstrates how to create an instance of the ExpandoObject class.

dynamic sampleObject = new ExpandoObject();
Dim sampleObject As Object = New ExpandoObject()

Agregar nuevos miembrosAdding New Members

Puede Agregar propiedades, métodos y eventos a las instancias de la ExpandoObject clase.You can add properties, methods, and events to instances of the ExpandoObject class.

En el ejemplo de código siguiente se muestra cómo agregar una nueva propiedad a una instancia ExpandoObject de la clase.The following code example demonstrates how to add a new property to an instance of the ExpandoObject class.

sampleObject.test = "Dynamic Property";
Console.WriteLine(sampleObject.test);
Console.WriteLine(sampleObject.test.GetType());
// This code example produces the following output:
// Dynamic Property
// System.String
sampleObject.Test = "Dynamic Property"
Console.WriteLine(sampleObject.test)
Console.WriteLine(sampleObject.test.GetType())
' This code example produces the following output:
' Dynamic Property
' System.String

Los métodos representan expresiones lambda que se almacenan como delegados, que se pueden invocar cuando se necesitan.The methods represent lambda expressions that are stored as delegates, which can be invoked when they are needed. En el ejemplo de código siguiente se muestra cómo agregar un método que incrementa un valor de la propiedad dinámica.The following code example demonstrates how to add a method that increments a value of the dynamic property.

sampleObject.number = 10;
sampleObject.Increment = (Action)(() => { sampleObject.number++; });

// Before calling the Increment method.
Console.WriteLine(sampleObject.number);

sampleObject.Increment();

// After calling the Increment method.
Console.WriteLine(sampleObject.number);
// This code example produces the following output:
// 10
// 11
sampleObject.Number = 10
sampleObject.Increment = Function() sampleObject.Number + 1
' Before calling the Increment method.
Console.WriteLine(sampleObject.number)

sampleObject.Increment.Invoke()

' After calling the Increment method.
Console.WriteLine(sampleObject.number)
' This code example produces the following output:
' 10
' 11

En el ejemplo de código siguiente se muestra cómo agregar un evento a una instancia ExpandoObject de la clase.The following code example demonstrates how to add an event to an instance of the ExpandoObject class.

class Program  
{  
    static void Main(string[] args)  
    {  
        dynamic sampleObject = new ExpandoObject();  

        // Create a new event and initialize it with null.  
        sampleObject.sampleEvent = null;  

        // Add an event handler.  
        sampleObject.sampleEvent += new EventHandler(SampleHandler);  

        // Raise an event for testing purposes.  
        sampleObject.sampleEvent(sampleObject, new EventArgs());  
   }  

    // Event handler.  
    static void SampleHandler(object sender, EventArgs e)  
    {  
        Console.WriteLine("SampleHandler for {0} event", sender);  
    }  
}  
// This code example produces the following output:  
// SampleHandler for System.Dynamic.ExpandoObject event.  
Module Module1  

Sub Main()  
    Dim sampleObject As Object = New ExpandoObject()  

    ' Create a new event and initialize it with null.  
    sampleObject.sampleEvent = Nothing  

    ' Add an event handler.  
    Dim handler As EventHandler = AddressOf SampleHandler  
    sampleObject.sampleEvent =   
        [Delegate].Combine(sampleObject.sampleEvent, handler)  

    ' Raise an event for testing purposes.  
    sampleObject.sampleEvent.Invoke(sampleObject, New EventArgs())  

End Sub  

' Event handler.  
Sub SampleHandler(ByVal sender As Object, ByVal e As EventArgs)  
    Console.WriteLine("SampleHandler for {0} event", sender)  
End Sub  

' This code example produces the following output:  
' SampleHandler for System.Dynamic.ExpandoObject event.  

End Module  

Pasar como parámetroPassing As a Parameter

Puede pasar instancias de la ExpandoObject clase como parámetros.You can pass instances of the ExpandoObject class as parameters. Tenga en cuenta que estas instancias se tratan como objetos C# dinámicos en y en objetos enlazados en tiempo de ejecución en Visual Basic.Note that these instances are treated as dynamic objects in C# and late-bound objects in Visual Basic. Esto significa que no tiene IntelliSense para los miembros de objeto y no recibe errores del compilador cuando se llama a miembros que no existen.This means that you do not have IntelliSense for object members and you do not receive compiler errors when you call non-existent members. Si se llama a un miembro que no existe, se produce una excepción.If you call a member that does not exist, an exception occurs.

En el ejemplo de código siguiente se muestra cómo se puede crear y usar un método para imprimir los nombres y valores de las propiedades.The following code example demonstrates how you can create and use a method to print the names and values of properties.

class Program
{
    static void Main(string[] args)
    {
        dynamic employee, manager;

        employee = new ExpandoObject();
        employee.Name = "John Smith";
        employee.Age = 33;

        manager = new ExpandoObject();
        manager.Name = "Allison Brown";
        manager.Age = 42;
        manager.TeamSize = 10;

        WritePerson(manager);
        WritePerson(employee);
    }
    private static void WritePerson(dynamic person)
    {
        Console.WriteLine("{0} is {1} years old.",
                          person.Name, person.Age);
        // The following statement causes an exception
        // if you pass the employee object.
        // Console.WriteLine("Manages {0} people", person.TeamSize);
    }
}
// This code example produces the following output:
// John Smith is 33 years old.
// Allison Brown is 42 years old.
Sub Main()
    Dim employee, manager As Object

    employee = New ExpandoObject()
    employee.Name = "John Smith"
    employee.Age = 33

    manager = New ExpandoObject()
    manager.Name = "Allison Brown"
    manager.Age = 42
    manager.TeamSize = 10

    WritePerson(manager)
    WritePerson(employee)
End Sub

Private Sub WritePerson(ByVal person As Object)

    Console.WriteLine("{0} is {1} years old.",
                      person.Name, person.Age)
    ' The following statement causes an exception
    ' if you pass the employee object.
    ' Console.WriteLine("Manages {0} people", person.TeamSize)

End Sub

Enumerar y eliminar miembrosEnumerating and Deleting Members

La clase ExpandoObject implementa la interfaz IDictionary<String, Object>.The ExpandoObject class implements the IDictionary<String, Object> interface. Esto permite la enumeración de los miembros agregados a ExpandoObject la instancia de la clase en tiempo de ejecución.This enables enumeration of members added to the instance of the ExpandoObject class at run time. Esto puede ser útil si no conoce en tiempo de compilación qué miembros podría tener una instancia.This can be useful if you do not know at compile time what members an instance might have.

En el ejemplo de código siguiente se muestra cómo se puede convertir una ExpandoObject instancia de la IDictionary<TKey,TValue> clase en la interfaz y enumerar los miembros de la instancia.The following code example shows how you can cast an instance of the ExpandoObject class to the IDictionary<TKey,TValue> interface and enumerate the instance's members.

dynamic employee = new ExpandoObject();
employee.Name = "John Smith";
employee.Age = 33;

foreach (var property in (IDictionary<String, Object>)employee)
{
    Console.WriteLine(property.Key + ": " + property.Value);
}
// This code example produces the following output:
// Name: John Smith
// Age: 33
Dim employee As Object = New ExpandoObject()
employee.Name = "John Smith"
employee.Age = 33
For Each member In CType(employee, IDictionary(Of String, Object))
    Console.WriteLine(member.Key & ": " & member.Value)
Next
' This code example produces the following output:
' Name: John Smith
' Age: 33

En los lenguajes que no tienen sintaxis para eliminar miembros (como C# y Visual Basic), puede eliminar un miembro convirtiendo implícitamente una instancia de ExpandoObject en la IDictionary<String, Object> interfaz y, a continuación, eliminando el miembro como un par clave-valor.In languages that do not have syntax for deleting members (such as C# and Visual Basic), you can delete a member by implicitly casting an instance of the ExpandoObject to the IDictionary<String, Object> interface and then deleting the member as a key/value pair. Esta implementación se muestra en el ejemplo siguiente.This is shown in the following example.

dynamic employee = new ExpandoObject();
employee.Name = "John Smith";
((IDictionary<String, Object>)employee).Remove("Name");
Dim employee As Object = New ExpandoObject()
employee.Name = "John Smith"
CType(employee, IDictionary(Of String, Object)).Remove("Name")

Recibir notificaciones de cambios de propiedadReceiving Notifications of Property Changes

La ExpandoObject clase implementa la INotifyPropertyChanged interfaz y puede generar un PropertyChanged evento cuando se agrega, elimina o modifica un miembro.The ExpandoObject class implements the INotifyPropertyChanged interface and can raise a PropertyChanged event when a member is added, deleted, or modified. Esto permite ExpandoObject la integración de clases con el enlace de datos de Windows Presentation Foundation (WPF) y otros entornos que requieren notificaciones sobre los cambios en el contenido del objeto.This enables ExpandoObject class integration with Windows Presentation Foundation (WPF) data binding and other environments that require notification about changes in the object content.

En el ejemplo de código siguiente se muestra cómo crear un controlador de PropertyChanged eventos para el evento.The following code example demonstrates how to create an event handler for the PropertyChanged event.

// Add "using System.ComponentModel;" line 
// to the beginning of the file.
class Program
{
    static void Test()
    {
        dynamic employee = new ExpandoObject();
        ((INotifyPropertyChanged)employee).PropertyChanged +=
            new PropertyChangedEventHandler(HandlePropertyChanges);
        employee.Name = "John Smith";
    }

    private static void HandlePropertyChanges(
        object sender, PropertyChangedEventArgs e)
    {
        Console.WriteLine("{0} has changed.", e.PropertyName);
    }
}
' Add "Imports System.ComponentModel" line 
' to the beginning of the file.
Sub Main()
    Dim employee As Object = New ExpandoObject
    AddHandler CType(
        employee, INotifyPropertyChanged).PropertyChanged,
        AddressOf HandlePropertyChanges
    employee.Name = "John Smith"
End Sub

Private Sub HandlePropertyChanges(
       ByVal sender As Object, ByVal e As PropertyChangedEventArgs)
    Console.WriteLine("{0} has changed.", e.PropertyName)
End Sub

Constructores

ExpandoObject() ExpandoObject() ExpandoObject() ExpandoObject()

Inicializa un nuevo ExpandoObject que no tiene miembros.Initializes a new ExpandoObject that does not have members.

Implementaciones de interfaz explícitas

ICollection<KeyValuePair<String,Object>>.Add(KeyValuePair<String,Object>) ICollection<KeyValuePair<String,Object>>.Add(KeyValuePair<String,Object>) ICollection<KeyValuePair<String,Object>>.Add(KeyValuePair<String,Object>) ICollection<KeyValuePair<String,Object>>.Add(KeyValuePair<String,Object>)

Agrega el valor especificado al objeto ICollection<T> que tiene la clave especificada.Adds the specified value to the ICollection<T> that has the specified key.

ICollection<KeyValuePair<String,Object>>.Clear() ICollection<KeyValuePair<String,Object>>.Clear() ICollection<KeyValuePair<String,Object>>.Clear() ICollection<KeyValuePair<String,Object>>.Clear()

Quita todos los elementos de la colección.Removes all items from the collection.

ICollection<KeyValuePair<String,Object>>.Contains(KeyValuePair<String,Object>) ICollection<KeyValuePair<String,Object>>.Contains(KeyValuePair<String,Object>) ICollection<KeyValuePair<String,Object>>.Contains(KeyValuePair<String,Object>) ICollection<KeyValuePair<String,Object>>.Contains(KeyValuePair<String,Object>)

Determina si ICollection<T> contiene una clave y un valor específicos.Determines whether the ICollection<T> contains a specific key and value.

ICollection<KeyValuePair<String,Object>>.CopyTo(KeyValuePair<String,Object>[], Int32) ICollection<KeyValuePair<String,Object>>.CopyTo(KeyValuePair<String,Object>[], Int32) ICollection<KeyValuePair<String,Object>>.CopyTo(KeyValuePair<String,Object>[], Int32) ICollection<KeyValuePair<String,Object>>.CopyTo(KeyValuePair<String,Object>[], Int32)

Copia los elementos de la interfaz ICollection<T> en una matriz de tipo KeyValuePair<TKey,TValue>, comenzando en el índice especificado de la matriz.Copies the elements of the ICollection<T> to an array of type KeyValuePair<TKey,TValue>, starting at the specified array index.

ICollection<KeyValuePair<String,Object>>.Count ICollection<KeyValuePair<String,Object>>.Count ICollection<KeyValuePair<String,Object>>.Count ICollection<KeyValuePair<String,Object>>.Count

Obtiene el número de elementos de ICollection<T>.Gets the number of elements in the ICollection<T>.

ICollection<KeyValuePair<String,Object>>.IsReadOnly ICollection<KeyValuePair<String,Object>>.IsReadOnly ICollection<KeyValuePair<String,Object>>.IsReadOnly ICollection<KeyValuePair<String,Object>>.IsReadOnly

Obtiene un valor que indica si ICollection<T> es de solo lectura.Gets a value indicating whether the ICollection<T> is read-only.

ICollection<KeyValuePair<String,Object>>.Remove(KeyValuePair<String,Object>) ICollection<KeyValuePair<String,Object>>.Remove(KeyValuePair<String,Object>) ICollection<KeyValuePair<String,Object>>.Remove(KeyValuePair<String,Object>) ICollection<KeyValuePair<String,Object>>.Remove(KeyValuePair<String,Object>)

Quita una clave y valor de la colección.Removes a key and value from the collection.

IDictionary<String,Object>.Add(String, Object) IDictionary<String,Object>.Add(String, Object) IDictionary<String,Object>.Add(String, Object) IDictionary<String,Object>.Add(String, Object)

Agrega la clave y el valor especificados al diccionario.Adds the specified key and value to the dictionary.

IDictionary<String,Object>.ContainsKey(String) IDictionary<String,Object>.ContainsKey(String) IDictionary<String,Object>.ContainsKey(String) IDictionary<String,Object>.ContainsKey(String)

Determina si el diccionario contiene la clave especificada.Determines whether the dictionary contains the specified key.

IDictionary<String,Object>.Item[String] IDictionary<String,Object>.Item[String] IDictionary<String,Object>.Item[String] IDictionary<String,Object>.Item[String]

Obtiene o establece el elemento que tiene la clave especificada.Gets or sets the element that has the specified key.

IDictionary<String,Object>.Keys IDictionary<String,Object>.Keys IDictionary<String,Object>.Keys IDictionary<String,Object>.Keys

Obtiene un objeto ICollection<T> que contiene las claves de IDictionary<TKey,TValue>.Gets an ICollection<T> that contains the keys of the IDictionary<TKey,TValue>.

IDictionary<String,Object>.Remove(String) IDictionary<String,Object>.Remove(String) IDictionary<String,Object>.Remove(String) IDictionary<String,Object>.Remove(String)

Quita de IDictionary el elemento que tiene la clave especificada.Removes the element that has the specified key from the IDictionary.

IDictionary<String,Object>.TryGetValue(String, Object) IDictionary<String,Object>.TryGetValue(String, Object) IDictionary<String,Object>.TryGetValue(String, Object) IDictionary<String,Object>.TryGetValue(String, Object)

Obtiene el valor asociado a la clave especificada.Gets the value associated with the specified key.

IDictionary<String,Object>.Values IDictionary<String,Object>.Values IDictionary<String,Object>.Values IDictionary<String,Object>.Values

Obtiene un ICollection<T> que contiene los valores de IDictionary<TKey,TValue>.Gets an ICollection<T> that contains the values in the IDictionary<TKey,TValue>.

IDynamicMetaObjectProvider.GetMetaObject(Expression) IDynamicMetaObjectProvider.GetMetaObject(Expression) IDynamicMetaObjectProvider.GetMetaObject(Expression) IDynamicMetaObjectProvider.GetMetaObject(Expression)

El MetaObject proporcionado se enviará a los métodos virtuales dinámicos.The provided MetaObject will dispatch to the dynamic virtual methods. El objeto se puede encapsular dentro de otro MetaObject para proporcionar el comportamiento personalizado para acciones individuales.The object can be encapsulated inside another MetaObject to provide custom behavior for individual actions.

IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator()

Devuelve un enumerador que procesa una iteración en la colección.Returns an enumerator that iterates through the collection.

IEnumerable<KeyValuePair<String,Object>>.GetEnumerator() IEnumerable<KeyValuePair<String,Object>>.GetEnumerator() IEnumerable<KeyValuePair<String,Object>>.GetEnumerator() IEnumerable<KeyValuePair<String,Object>>.GetEnumerator()

Devuelve un enumerador que procesa una iteración en la colección.Returns an enumerator that iterates through the collection.

INotifyPropertyChanged.PropertyChanged INotifyPropertyChanged.PropertyChanged INotifyPropertyChanged.PropertyChanged INotifyPropertyChanged.PropertyChanged

Tiene lugar cuando cambia un valor de propiedad.Occurs when a property value changes.

Métodos

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Inherited from Object)

Métodos de extensión

Remove<TKey,TValue>(IDictionary<TKey,TValue>, TKey, TValue) Remove<TKey,TValue>(IDictionary<TKey,TValue>, TKey, TValue) Remove<TKey,TValue>(IDictionary<TKey,TValue>, TKey, TValue) Remove<TKey,TValue>(IDictionary<TKey,TValue>, TKey, TValue)
TryAdd<TKey,TValue>(IDictionary<TKey,TValue>, TKey, TValue) TryAdd<TKey,TValue>(IDictionary<TKey,TValue>, TKey, TValue) TryAdd<TKey,TValue>(IDictionary<TKey,TValue>, TKey, TValue) TryAdd<TKey,TValue>(IDictionary<TKey,TValue>, TKey, TValue)
CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>)

Devuelve un objeto DataTable que contiene copias de los objetos DataRow, dado un objeto IEnumerable<T> de entrada donde el parámetro T genérico es DataRow.Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object where the generic parameter T is DataRow.

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

Copia objetos DataRow en el objeto DataTable especificado, dado un objeto IEnumerable<T> de entrada donde el parámetro T genérico es DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

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

Copia objetos DataRow en el objeto DataTable especificado, dado un objeto IEnumerable<T> de entrada donde el parámetro T genérico es DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable)

Convierte los elementos de IEnumerable en el tipo especificado.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable)

Filtra los elementos de IEnumerable en función de un tipo especificado.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable)

Habilita la paralelización de una consulta.Enables parallelization of a query.

AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable)

Convierte una interfaz IEnumerable en IQueryable.Converts an IEnumerable to an IQueryable.

Ancestors<T>(IEnumerable<T>) Ancestors<T>(IEnumerable<T>) Ancestors<T>(IEnumerable<T>) Ancestors<T>(IEnumerable<T>)

Devuelve una colección de elementos que contiene los antecesores de todos los nodos de la colección de origen.Returns a collection of elements that contains the ancestors of every node in the source collection.

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

Devuelve una colección de elementos filtrada que contiene los antecesores de todos los nodos de la colección de origen.Returns a filtered collection of elements that contains the ancestors of every node in the source collection. En la colección sólo se incluyen los elementos que tienen un objeto XName coincidente.Only elements that have a matching XName are included in the collection.

DescendantNodes<T>(IEnumerable<T>) DescendantNodes<T>(IEnumerable<T>) DescendantNodes<T>(IEnumerable<T>) DescendantNodes<T>(IEnumerable<T>)

Devuelve una colección de los nodos descendientes de todos los documentos y elementos de la colección de origen.Returns a collection of the descendant nodes of every document and element in the source collection.

Descendants<T>(IEnumerable<T>) Descendants<T>(IEnumerable<T>) Descendants<T>(IEnumerable<T>) Descendants<T>(IEnumerable<T>)

Devuelve una colección de elementos que contiene los elementos descendientes de todos los elementos y documentos de la colección de origen.Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

Descendants<T>(IEnumerable<T>, XName) Descendants<T>(IEnumerable<T>, XName) Descendants<T>(IEnumerable<T>, XName) 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.Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. En la colección sólo se incluyen los elementos que tienen un objeto XName coincidente.Only elements that have a matching XName are included in the collection.

Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>)

Devuelve una colección de los elementos secundarios de todos los elementos y documentos de la colección de origen.Returns a collection of the child elements of every element and document in the source collection.

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

Devuelve una colección filtrada de los elementos secundarios de todos los elementos y documentos de la colección de origen.Returns a filtered collection of the child elements of every element and document in the source collection. En la colección sólo se incluyen los elementos que tienen un objeto XName coincidente.Only elements that have a matching XName are included in the collection.

InDocumentOrder<T>(IEnumerable<T>) InDocumentOrder<T>(IEnumerable<T>) InDocumentOrder<T>(IEnumerable<T>) InDocumentOrder<T>(IEnumerable<T>)

Devuelve una colección de nodos que contiene todos los nodos de la colección de origen, clasificados por documento.Returns a collection of nodes that contains all nodes in the source collection, sorted in document order.

Nodes<T>(IEnumerable<T>) Nodes<T>(IEnumerable<T>) Nodes<T>(IEnumerable<T>) Nodes<T>(IEnumerable<T>)

Devuelve una colección de los nodos secundarios de todos los documentos y elementos de la colección de origen.Returns a collection of the child nodes of every document and element in the source collection.

Remove<T>(IEnumerable<T>) Remove<T>(IEnumerable<T>) Remove<T>(IEnumerable<T>) Remove<T>(IEnumerable<T>)

Quita todos los nodos de la colección de origen de su nodo primario.Removes every node in the source collection from its parent node.

Se aplica a