Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

525
Vistas
.net6 y MoreLinq: la llamada es ambigua entre System.Linq.Enumerable.DistinctBy y MoreLinq.MoreEnumerable.DistinctBy

Recientemente actualicé uno de mis proyectos para usar .NET 6 . Anteriormente estaba usando la biblioteca MoreLinq para usar DistinctBy() para aplicarlo en la propiedad específica.

Ahora que actualicé TargetFramework a .NET 6 , este cambio viene con soporte incorporado para DistinctBy() .

Ahora el compilador está confundido acerca de qué DistinctBy() debe seleccionar, no puedo confiar en System.Linq , porque la eliminación del using MoreLinq causará muchos otros errores.

Sé que si nos enfrentamos a la ambigüedad entre los mismos métodos, entonces podemos usar el using alias , pero no estoy seguro de cómo usar el using alias para los métodos de extensión de Linq.

Aquí está el error:

ingrese la descripción de la imagen aquí

Puedo replicar el mismo problema en el siguiente violín

Prueba en línea

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

No puede crear un alias para un método de extensión, pero puede llamar a la extensión como un método normal, utilizando el espacio de nombres completo. Después de todo, los métodos de extensión son realmente azúcar sintáctico. Por ejemplo (usando los mismos datos que proporcionó en su violín):

 var inputs = new [] { new {Name = "Bruce wayne", State = "New York"}, new {Name = "Rajnikant", State = "Tamil Nadu"}, new {Name = "Robert Downey jr", State = "Pennsylvania"}, new {Name = "Dwane Johnson", State = "Pennsylvania"}, new {Name = "Hritik", State = "Maharashtra"} }; var net6DistinctBy = System.Linq.Enumerable.DistinctBy(inputs, x => x.State); var moreLinqDistinctBy = MoreLinq.MoreEnumerable.DistinctBy(inputs, x => x.State);
over 4 years ago · Santiago Trujillo Denunciar

0

Para evitar conflictos al usar MoreLinq, sin dejar de usarlos como métodos de extensión, puede importar los métodos de MoreLinq que necesite de esta manera:

 using static MoreLinq.Extensions.LagExtension; using static MoreLinq.Extensions.LeadExtension;

Entonces, en su caso, podría simplemente eliminar MoreLinq de sus usos y luego importar cualquier método de extensión de MoreLinq que necesite en el archivo individualmente como se muestra arriba.

Puedes leer sobre esto en la página de MoreLinq Github

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda