Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

517
Views
.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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!