C# 仅使用LINQ解决项目Euler挑战#1

C# 仅使用LINQ解决项目Euler挑战#1,c#,.net,linq,functional-programming,C#,.net,Linq,Functional Programming,欧拉计划基本上包括找出所有小于1000且可被3或5整除的数字的总和。如果有某种预先存在的列表包含1到999(包括)之间的所有整数,那么使用LINQ将非常简单 LINQ是否具有生成整数序列的内置方法?您想要该方法: IEnumerable seq=Enumerable.Range(1999)。选择(x=>x); 创建一系列正方形: IEnumerable<int> squares = Enumerable.Range(1, 10).Select(x => x * x); IE

欧拉计划基本上包括找出所有小于1000且可被3或5整除的数字的总和。如果有某种预先存在的列表包含1到999(包括)之间的所有整数,那么使用LINQ将非常简单

LINQ是否具有生成整数序列的内置方法?

您想要该方法:

IEnumerable seq=Enumerable.Range(1999)。选择(x=>x);
创建一系列正方形:

IEnumerable<int> squares = Enumerable.Range(1, 10).Select(x => x * x);
IEnumerable squares=Enumerable.Range(1,10)。选择(x=>x*x);
奇数序列:

IEnumerable<int> oddNumbers = Enumerable.Range(1, 100).Where(x => x % 2 != 0);
IEnumerable oddNumbers=Enumerable.Range(1100)。其中(x=>x%2!=0);
您需要以下方法:

IEnumerable seq=Enumerable.Range(1999)。选择(x=>x);
创建一系列正方形:

IEnumerable<int> squares = Enumerable.Range(1, 10).Select(x => x * x);
IEnumerable squares=Enumerable.Range(1,10)。选择(x=>x*x);
奇数序列:

IEnumerable<int> oddNumbers = Enumerable.Range(1, 100).Where(x => x % 2 != 0);
IEnumerable oddNumbers=Enumerable.Range(1100)。其中(x=>x%2!=0);

您可以将LINQ
可枚举的.Range
(它获取开始索引和所需的数字量),
其中
与您的两个条件和
总和
链接在一起

%==0
(模运算符)确保您的数字可被其他数字整除

这为以下LINQ提供了一个衬里:

Enumerable.Range(0, 1000).Where(number => number % 3 == 0 || number % 5 == 0).Sum();

您可以将LINQ
可枚举的.Range
(其中包含起始索引和所需的数字量)、
Where
与这两个条件和
求和一起链接起来

%==0
(模运算符)确保您的数字可被其他数字整除

这为以下LINQ提供了一个衬里:

Enumerable.Range(0, 1000).Where(number => number % 3 == 0 || number % 5 == 0).Sum();

我故意不给出完整答案,这样发帖人就可以体验到为自己解决问题的快感……我故意不给出完整答案,这样发帖人就可以体验到为自己解决问题的快感……但是你能不使用
Enumerable.Range
?@Rubens Farias:你是在问我能不能使用LINQ而不使用范围?如果是这样的话,那就不是了。我最初是用命令式解决的。在这个过程中,我突然想到,如果可以使用LINQ,它可能是一个线性函数。我建议您尝试在不使用循环或序列的情况下解决这个问题。@Rubens Farias:使用递归?@Rubens Farias:我刚刚创建了一个相当简单的数学公式来解决它。这就是你暗示的方法吗?但是你能在不使用
可枚举.Range
的情况下解决这个问题吗?@Rubens Farias:你是在问我是否可以在不使用Range的情况下使用LINQ?如果是这样的话,那就不是了。我最初是用命令式解决的。在这个过程中,我突然想到,如果可以使用LINQ,它可能是一个线性函数。我建议您尝试在不使用循环或序列的情况下解决这个问题。@Rubens Farias:使用递归?@Rubens Farias:我刚刚创建了一个相当简单的数学公式来解决它。这就是你暗示的方法吗?