Conversión de Vb.Net Linq a C# pero error distinto

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.

preguntado el 14 de febrero de 14 a las 01:02

¿Puedes agregar el userName = parte en el código C# que ha omitido del VB? -

1 Respuestas

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 or haz tu propia pregunta.