Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在起始和结束范围内生成数字?_C#_Asp.net - Fatal编程技术网

C# 如何在起始和结束范围内生成数字?

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

我有一个起始范围和结束范围,我需要能够生成这个范围内的数字,并每次按起始范围+1递增返回的数字,但决不能两次生成相同的数字


不知道如何使用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:没错,但听起来他就是这个意思,“在范围内生成数字”和“永远不要生成相同的数字两次”