Я использую структуру JSON, найденную здесь: http: // stig .github.com / json-framework в моем приложении для iPhone. Я'example1@example.com "," example2@example.com "," example3@example.com "Я ищу лучший способ или, по крайней мере, подтверждение того, что я делаю это правильно.
using System.Numerics
///Generates a uniformly random integer in the range [0, bound).
public static BigInteger RandomIntegerBelow(this System.Security.Cryptography.RandomNumberGenerator source, BigInteger bound) {
Contract.Requires(source != null);
Contract.Requires(bound > 0);
Contract.Ensures(Contract.Result() >= 0);
Contract.Ensures(Contract.Result() < bound);
//Get a byte buffer capable of holding any value below the bound
var buffer = (bound << 16).ToByteArray(); // << 16 adds two bytes, which decrease the chance of a retry later on
//Compute where the last partial fragment starts, in order to retry if we end up in it
var generatedValueBound = BigInteger.One << (buffer.Length * 8 - 1); //-1 accounts for the sign bit
Contract.Assert(generatedValueBound >= bound);
var validityBound = generatedValueBound - generatedValueBound % bound;
Contract.Assert(validityBound >= bound);
while (true) {
//generate a uniformly random value in [0, 2^(buffer.Length * 8 - 1))
source.GetBytes(buffer);
buffer[buffer.Length - 1] &= 0x7F; //force sign bit to positive
var r = new BigInteger(buffer);
//return unless in the partial fragment
if (r >= validityBound) continue;
return r % bound;
}
}