Conversión de Vb.Net Linq a C# pero error distinto
Frecuentes
Visto 575 equipos
1
Estoy tratando de mover parte de mi código de vb.net a la biblioteca de clases c#. Tengo una consulta de linq en vb.net que está consultando contra un DataTable.
Dim qryUser = From db In dt.AsEnumerable() _
Select userName = db.Field(Of String)("UserName") Distinct
Order By userName Ascending
Ahora estoy tratando de hacer que esto funcione en C# y tengo
IEnumerable<string> qryUser = (from db in Table.AsEnumerable()
orderby db.Field<string>("UserName") ascending
select db.Field<string>("UserName"));
Ahora todos los ejemplos que he encontrado buscando, muestran que solo debería agregar
.Distinct()
hasta el final de mi consulta c# linq para que se vea así
IEnumerable<string> qryUser = (from db in Table.AsEnumerable()
orderby db.Field<string>("UserName") ascending
select db.Field<string>("UserName")).Distinct()
pero al hacer esto me da error en mi IDE
El error 1 'System.Data.EnumerableRowCollection' no contiene una definición para 'Distinct' y no se pudo encontrar ningún método de extensión 'Distinct' que acepte un primer argumento del tipo 'System.Data.EnumerableRowCollection'
¿Puede alguien, por favor, mostrarme la forma correcta de hacer esto? Gracias de antemano.
1 Respuestas
3
Pude copiar/pegar tu código (y configurar un pequeño DataTable
) y funcionó bien.
El Distinct
método de extensión vive en el System.Linq
espacio de nombres
Asegúrese de lo siguiente using
directiva está en la parte superior de su archivo de clase:
using System.Linq;
Respondido 14 Feb 14, 01:02
Santo fallo de mi parte. Olvidé por completo el uso de System.Linq - famoso Kaneis
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas c# vb.net linq compiler-errors distinct or haz tu propia pregunta.
¿Puedes agregar el
userName =
parte en el código C# que ha omitido del VB? - jmcilhinney