Vous êtes sur la page 1sur 3

Comparar DataRows (LINQ to DataSet)Pgina de inicio Biblioteca Aprender Descargas Soporte tcnico Comunidad Iniciar sesin Argentina - Espaol

Preferencias MSDN Library Herramientas y lenguajes de desarrollo Visual Studio 2008 Visual Studio Programacin de .NET Framework en Visual Studio Obtener acceso a datos ADO.NET LINQ to DataSet Gua de programacin (LINQ to DataSet) Comparar DataRows (LINQ to DataSet) Contenido de la comunidad Agregue ejemplos de cdigo y sugerencias para mejorar este tema. Ms... Comparar DataRows (LINQ to DataSet) Visual Studio 2008 Otras versiones .NET Framework 4 Actualizacin: November 2007 Language-Integrated Query (LINQ) define varios operadores de conjuntos para comparar elementos de origen y ver si son iguales. LINQ proporciona los siguientes operadores de conjuntos: Distinct Union Intersect Except Estos operadores comparan elementos origen llamando a los mtodos GetHashCode y Equals de cada coleccin de elementos. En el caso de DataRow, estos operadores realizan una comparacin de referencia, lo que en general no constituye un comportamiento ideal para operaciones de conjunto en datos tabulares. Para las operaciones de conjuntos, por lo general desear determinar si los valores del elemento son iguales o no a las referencias del elemento. Por ello, se ha agregado la clase DataRowComparer a LINQ to DataSet. Esta clase se puede utilizar para comparar valores de fila. La clase DataRowComparer contiene una implementacin de comparacin del valor para DataRow, de modo que esta clase se puede utilizar para operaciones de conjuntos como Distinct. No se puede crear una instancia directamente de esta clase. En su lugar, debe utilizarse la propiedad Default para devolver una instancia de DataRowComparer. Entonces, se llama al mtodo Equals(DataRow, DataRow) y los dos objetos DataRow que se van a comparar se pasan como parmetros de entrada. El mtodo Equals(DataRow, DataRow) devuelve true si los conjuntos ordenados de valores de columna de ambos objetos DataRow son iguales; de lo contrario, devuelve false. Ejemplo

Este ejemplo usa Intersect para devolver contactos que aparecen en ambas tablas. VBC#C++F#JScriptCopiar' Fill the DataSet. Dim ds As New DataSet() ds.Locale = CultureInfo.InvariantCulture ' See the FillDataSet method in the Loading Data Into a DataSet topic. FillDataSet(ds) Dim contactTable As DataTable = ds.Tables("Contact") Dim query1 = _ From contact In contactTable.AsEnumerable() _ Where contact.Field(Of String)("Title") = "Ms." _ Select contact Dim query2 = _ From contact In contactTable.AsEnumerable() _ Where contact.Field(Of String)("FirstName") = "Sandra" _

Select contact Dim contacts1 = query1.CopyToDataTable() Dim contacts2 = query2.CopyToDataTable() Dim contacts = contacts1.AsEnumerable() _ .Intersect(contacts2.AsEnumerable(), DataRowComparer.Default) Console.WriteLine("Intersect of employees tables") For Each row In contacts Console.WriteLine("Id: {0} {1} {2} {3}", _ row("ContactID"), row("Title"), row("FirstName"), row("LastName")) Next Ejemplo El ejemplo siguiente compara dos filas y obtiene sus cdigos hash. VBC#C++F#JScriptCopiar' Fill the DataSet. Dim ds As New DataSet() ds.Locale = CultureInfo.InvariantCulture ' See the FillDataSet method in the Loading Data Into a DataSet topic. FillDataSet(ds) ' Get two rows from the SalesOrderHeader table. Dim table As DataTable = ds.Tables("SalesOrderHeader") Dim left = table.Rows(0) Dim right = table.Rows(1) ' Compare the two different rows. Dim comparer As IEqualityComparer(Of DataRow) = DataRowComparer.Default Dim bEqual = comparer.Equals(left, right) If (bEqual = True) Then Console.WriteLine("Two rows are equal") Else Console.WriteLine("Two rows are not equal") End If ' Output the hash codes of the two rows. Console.WriteLine("The hashcodes for the two rows are {0}, {1}", _ comparer.GetHashCode(left), _ comparer.GetHashCode(right))

Vea tambin

Conceptos Cargar datos en DataSet Referencia DataRowComparer Otros recursos Ejemplos de LINQ to DataSet Contenido de la comunidad Agregar Preguntas ms frecuentes 2011 Microsoft Corporation. Reservados todos los derechos.Trminos de uso Marcas Registradas Privacidad Administre su perfil MSDN Flash en Espaol Contacto Aviso legal Comentarios Comentariosx Cuntenos su experiencia... La pgina se

carg rpidamente? S No Le gusta el diseo de la pgina? S No Cun til es este tema? Cuntenos ms Enter description here.

Vous aimerez peut-être aussi