我有一個起點範圍和結束範圍,我需要能夠生成數字withing此範圍內,並開始範圍+ 1每次增加返回的數字,但從來沒有產生相同數量的兩倍。如何在起始和結束範圍內生成數字?
不知道如何用C#做到這一點,任何幫助將是巨大的。
我有一個起點範圍和結束範圍,我需要能夠生成數字withing此範圍內,並開始範圍+ 1每次增加返回的數字,但從來沒有產生相同數量的兩倍。如何在起始和結束範圍內生成數字?
不知道如何用C#做到這一點,任何幫助將是巨大的。
你不只是尋找一個枚舉發生器功能?
public IEnumerable<int> Generate(int begin, int end) {
int cur = begin;
while(cur <= end) {
yield return cur;
cur++;
}
}
用法:
foreach(int val in Generate(3, 15))
{
DoWork(val);
}
由於它不是完全從您的文章清楚,我不揣冒昧地猜測,你想一個函數調用時給你下一個索引(如自動增量是跟蹤下一個值的你,而不是一個列表) - 最小的詳細方法是使用使用閉包,我想:
var closedIndex = new Func<int, int, Func<int>>((lower, upper) => {
return delegate {
if (lower < upper) {
lower++;
return lower;
}
return lower;
};
});
用法:
var nextIndex = closedIndex(1, 5);
var first = nextIndex();
var second = nextIndex();
var third = nextIndex();
Console.WriteLine(first);
Console.WriteLine(second);
Console.WriteLine(third);
輸出是:
如果那不是有意的話約翰Weldons建議應該正常工作。
嘗試Enumerable.Range(start, count)
。它內置於框架中。
我不知道你的意思是「增加由起始範圍+ 1返回的數字」?這是否意味着如果範圍從5到10,你會添加(5 + 1)到你生成的任何數字? – rossipedia
這裏的情況是什麼?當然你已經知道如何定義一個整數和++它。你沒有解釋在你的特定情況下,這個不重要的東西...... –
這個問題根本不清楚。不明白你需要什麼。 –