您可以在單獨的數組中生成允許值(相對於最小值,最大值和忽略的值),並將其用於目標數組生成。我們來考慮下面的例子。
幫助功能:
byte[] GenerateAllowableValues(byte min, byte max, byte[] ignore)
{
var list = new List<byte>();
for (byte i = min; i <= max; i++)
if (!ignore.Contains(i))
list.Add(i);
return list.ToArray();
}
byte[] GenerateRandomArray(Random random, byte[] allowableValues, int length)
{
var array = new byte[length];
for (int i = 0; i < length; i++)
array[i] = allowableValues[random.Next(allowableValues.Length)];
return array;
}
用法:
void Main()
{
var random = new Random(42);
var allowableValues = GenerateAllowableValues(10, 20, new byte[] { 12, 15 });
var randomArray = GenerateRandomArray(random, allowableValues, 5);
foreach (byte b in randomArray)
Console.WriteLine(b); // 18 11 11 16 11
}
你不想要什麼號碼?你能展示一個包含這樣的數字的樣例輸出,以及你期望它的樣子嗎? – 2014-11-23 15:48:02
「,但重複調用此函數不會給出好的結果。」這是什麼意思?你每次打電話時都收到相同的號碼嗎? – 2014-11-23 15:48:15