Comunemente, per trovare elemento con la proprietà del valore massimo mi piace questocosa è più veloce nel trovare elemento con proprietà di valore massimo
var itemWithMaxPropValue = collection.OrderByDescending(x => x.Property).First();
ma è buon modo dal punto di vista delle prestazioni? Forse dovrei fare qualcosa del genere?
var maxValOfProperty = collection.Max(x => x.Property);
var itemWithMaxPropValue = collection
.Where(x => x.Property == maxValueOfProperty).First();
andrò con ' Max' dal momento che è stato progettato appositamente per questo ...L'ordinamento per trovare il valore massimo sembra essere troppo ... Inoltre, non userei 'Dove' per trovare il massimo, ma' Single' – Ian
'OrderByDescending'/Quicksort dovrebbe essere O (n^2) e' Max' è O (n) con 'Where' O (n) - quindi il secondo approc dovrebbe essere più veloce – fubo
vedere https://www.nuget.org/packages/MoreLinq.Source.MoreEnumerable.MaxBy/ per l'uso in memoria (doesn traduciamo in sql) –