Dado este código:
Book[] books = new Book[3] { new Book("100", "Title1"), new Book("200", "Title2"), new Book("200", "Title3"), }; getBookWithMostPages() { var max = books.Max(book => book.pages); return books.FirstOrDefault((book) => book.pages == max); }¿Es posible (hay alguna forma documentada) encadenar Max y FirstOrDefault y devolver el mismo resultado?
.NET 6 introdujo el operador MaxBy . Creo que eso podría ser lo que estás buscando:
var book = books.MaxBy(b => b.Pages);Aquí está la implementación en la fuente de referencia, por lo que si está utilizando la versión anterior de .NET, debería poder copiarla en su base de código. Si por supuesto eso es lo que quieres...
Puede ordenar la matriz y devolver el primer valor:
return books.OrderByDescending(book => book.pages) .FirstOrDefault();