假设前9个整数可以从9开始整除3.
我确定有一些使用lambdas的单行解决方案,我只是不知道它的语言区域还不够.
使用Linq:
int[] numbers = Enumerable.Range(9,10000) .Where(x => x % 3 == 0) .Take(20) .ToArray();
如果需要,还可以使用PLinq轻松实现并行化:
int[] numbers = Enumerable.Range(9,10000) .AsParallel() //added this line .Where(x => x % 3 == 0) .Take(20) .ToArray();
只是为了与众不同(并避免使用where语句),你也可以这样做:
var numbers = Enumerable.Range(0, n).Select(i => i * 3 + 9);
更新这也有不会耗尽数字的好处.