【发布时间】:2020-03-31 07:13:24
【问题描述】:
我正在尝试获取具有可变步数的最小值和最大值的列表。
例如: 如果我将最小值设置为 10,000,最大值设置为 150,000,步数设置为 20,000。我应该能够得到 [10000,30000,50000,70000,...,150000] 的列表。
如果步数设置为 15,000 则类似 - 我应该将列表设为 [10000,25000,40000,...,145000]
int min = 10000;
int max = 150000;
int step = 20000;
var result = Enumerable.Range( min, max).Where(i => i<= max && (i % step == 0));
foreach (int num in result) { Console.WriteLine(num); } // output: [20000,40000,60000,80000,100000,120000,140000]
由于我使用模运算符来使零值相等,因此它会跳过范围内的第一个值并给我上述结果而不是 [10000,30000,..,150000]。 由于我是 C# 编程的新手,任何人都可以用上面的代码纠正我以获得所需的输出。
PS:我已经参考了这个帖子How to get alternate numbers using Enumerable.Range?,但找不到答案。
【问题讨论】:
-
上述stackoverflow.com/questions/4142543/… 的答案非常适合这里。您是否尝试过那里的所有答案?什么不适合你?
-
将最大值设置为:((150000-10000)/20000) + 1。然后我使用:min + (i * 20000)
-
这个链接和我在描述中提到的一样。我已经试过了,没有解决我的问题
标签: c# .net linq enumerable enumerable.range