Звучит так, будто вы хотите MaxBy
конструкцию.Этого не существует в обычном LINQ to Objects, хотя у меня есть один в MoreLINQ , так что вы бы написали:
var result = dictionary.MaxBy(pair => pair.Value);
Однако это не будет распараллелено в путичто бы вы хотели.Вы можете по крайней мере попробовать , используя эту перегрузку ParallelEnumerable.Max
, создав собственный сопоставимый тип, содержащий соответствующие значения:
public class ComparablePair : IComparable<ComparablePair>
{
// Have key and value, then implement IComparable<T> by
// comparing values
}
Затем используйте:
var result = dictionary.AsParallel()
.Max(pair => new ComparablePair(pair));