Έχουν δημοσιευτεί
Τετάρτη, 12 Σεπτεμβρίου 2007 8:59 μμ
από το μέλος
PALLADIN
Σήμερα ολοκλήρωσα το απαραίτητο refactoring και την υλοποίηση της Parallel Reduce extension method.
Συνεχίζοντας το coding, υλοποίησα με την Reduce τις Parallel versions των Min και Max, με σκοπό να δείξω την εκφραστική δύναμη του Reduce pattern.
public static T Max<T>(this IParallelEnumerable<T> data) where T : IComparable<T>
{
return data.Aggregate(data.First(), (accumulate, value) => (accumulate.CompareTo(value) > 0)? accumulate : value);
}
public static T Min<T>(this IParallelEnumerable<T> data) where T : IComparable<T>
{
return data.Aggregate(data.First(), (accumulate, value) => (accumulate.CompareTo(value) < 0)? accumulate : value);
}
(Σημείωση: Στο LINQ η Reduce method ονομάζεται Aggregate)