BelhardTraining.LinqToObjectsDemo.PrimeNumbers.GetPrimeNumbersParallel C# (CSharp) Méthode

GetPrimeNumbersParallel() public static méthode

Получение последовательности случайных чисел до указанного значения с помощью Parallel LINQ
public static GetPrimeNumbersParallel ( int maxValue ) : IEnumerable
maxValue int
Résultat IEnumerable
        public static IEnumerable<int> GetPrimeNumbersParallel(int maxValue)
        {
            if (maxValue == 1) return Enumerable.Empty<int>();
            if (maxValue == 2) return new[] { 2 };

            Func<int, IEnumerable<int>> primeNumbers = max =>
                 from i in Enumerable.Range(2, max - 1).AsParallel()
                 where Enumerable.Range(2, (int)Math.Sqrt(i)).All(j => i % j != 0)
                 select i;

            return primeNumbers(maxValue);
        }