C# 如何在起始和结束范围内生成数字?
我有一个起始范围和结束范围,我需要能够生成这个范围内的数字,并每次按起始范围+1递增返回的数字,但决不能两次生成相同的数字C# 如何在起始和结束范围内生成数字?,c#,asp.net,C#,Asp.net,我有一个起始范围和结束范围,我需要能够生成这个范围内的数字,并每次按起始范围+1递增返回的数字,但决不能两次生成相同的数字 不知道如何使用C#实现这一点,任何帮助都会很好。您不是在寻找一个可枚举的生成器函数吗 public IEnumerable<int> Generate(int begin, int end) { int cur = begin; while(cur <= end) { yield return cur; cu
不知道如何使用C#实现这一点,任何帮助都会很好。您不是在寻找一个可枚举的生成器函数吗
public IEnumerable<int> Generate(int begin, int end) {
int cur = begin;
while(cur <= end) {
yield return cur;
cur++;
}
}
你不是在寻找一个可枚举的生成器函数吗
public IEnumerable<int> Generate(int begin, int end) {
int cur = begin;
while(cur <= end) {
yield return cur;
cur++;
}
}
由于您的帖子并不完全清楚,我冒昧地猜测,您需要一个函数,当调用该函数时,它将为您提供下一个索引(就像一个自动递增器,它为您跟踪下一个值,而不是列表)——最不详细的方法是使用闭包,我认为:
var closedIndex = new Func<int, int, Func<int>>((lower, upper) => {
return delegate {
if (lower < upper) {
lower++;
return lower;
}
return lower;
};
});
输出为:
二,
三,
四,
如果这不是我们的意图,那么约翰·韦尔登的建议应该行得通 由于您的帖子并不完全清楚,我冒昧地猜测,您需要一个函数,当调用该函数时,它将为您提供下一个索引(就像一个自动递增器,它为您跟踪下一个值,而不是列表)——最不详细的方法是使用闭包,我认为:
var closedIndex = new Func<int, int, Func<int>>((lower, upper) => {
return delegate {
if (lower < upper) {
lower++;
return lower;
}
return lower;
};
});
输出为:
二,
三,
四,
如果这不是我们的意图,那么约翰·韦尔登的建议应该行得通 尝试
可枚举范围(开始、计数)
。它内置于框架中。尝试可枚举的范围(开始,计数)
。它内置于框架中。我不确定您所说的“将返回的数字按起始范围+1递增”是什么意思?这是否意味着如果范围是从5到10,你会将(5+1)加到你生成的任何数字上?这里的上下文是什么?当然,您已经知道如何定义整数并将其转换为整数。你还没有解释在你的特殊情况下,是什么让这件事变得非同寻常……这个问题一点也不清楚。不明白你需要什么。@BryanRoss他当时没有提到随机性all@RobertLevy:是的,但听起来他就是这个意思,“在范围内生成数字”和“永远不要生成相同的数字两次”我不确定你所说的“按起始范围+1递增返回的数字”是什么意思?这是否意味着如果范围是从5到10,你会将(5+1)加到你生成的任何数字上?这里的上下文是什么?当然,您已经知道如何定义整数并将其转换为整数。你还没有解释在你的特殊情况下,是什么让这件事变得非同寻常……这个问题一点也不清楚。不明白你需要什么。@BryanRoss他当时没有提到随机性all@RobertLevy:没错,但听起来他就是这个意思,“在范围内生成数字”和“永远不要生成相同的数字两次”