web-dev-qa-db-fra.com

Comment générer un nombre aléatoire de 10 chiffres en C #?

J'utilise C # et je dois générer un nombre aléatoire de 10 chiffres. Jusqu'à présent, je n'ai eu que de la chance pour trouver des exemples indiquant la valeur maximale minimale. Comment puis-je générer un nombre aléatoire de 10 chiffres pouvant commencer par 0 (au départ, j'espérais random.Next(1000000000,9999999999) mais je doute que ce soit ce que je souhaite).

Mon code ressemble à ceci maintenant:

    [WebMethod]
    public string GenerateNumber()
    {
        Random random = new Random();
        return random.Next(?);
    }

** Mise à jour a fini par faire comme si,

    [WebMethod]
    public string GenerateNumber()
    {
        Random random = new Random();
        string r = "";
        int i;
        for (i = 1; i < 11; i++)
        {
            r += random.Next(0, 9).ToString();
        }
        return r;
    }
18
Hriskesh Ashokan

Si vous voulez dix chiffres mais que vous autorisez en commençant par 0 , vous avez l’impression que vous voulez générer une chaîne, pas un entier long.

Générez une chaîne de 10 caractères dans laquelle chaque caractère est sélectionné de manière aléatoire entre '0' .. '' 9 '.

5
Ray Toal

essayez (mais pas absolument exact)

Random R = new Random();

return ((long)R.Next (0, 100000 ) * (long)R.Next (0, 100000 )).ToString ().PadLeft (10, '0');
10
Yahia

Utilisez ceci pour créer des chiffres aléatoires avec une longueur spécifiée 

 public string RandomDigits(int length)
    {
        var random = new Random();
        string s = string.Empty;
        for (int i = 0; i < length; i++)
            s = String.Concat(s, random.Next(10).ToString());
        return s;
    }
8
A Ghazal
private void button1_Click(object sender, EventArgs e)
{
   Random Rand = new Random();
   long randnum2 = (long)(Rand.NextDouble() * 9000000000) + 1000000000;
   MessageBox.Show(randnum2.ToString());
}
3
DrWeather

(1000000000,9999999999) n'est pas aléatoire - vous indiquez que cela ne peut pas commencer par 1, vous avez donc déjà réduit votre base cible de 10%. 

Random est un double. Si vous voulez un entier, multipliez-le par 1 000 000 000, puis supprimez les chiffres après la décimale. 

3
Unsliced
   //Ten digits 
   public string CreateRandomNumber
   {
        get
        {
            //returns 10 digit random number (Ticks returns 16 digit unique number, substring it to 10)
            return DateTime.UtcNow.Ticks.ToString().Substring(8); 
        }
    }
1
Ravi Ganesan

J'ai essayé d'écrire un rapide:

private int GetNDigitsRandomNumber(int digits)
{
    var min = 1;
    for (int i = 0; i < digits-1; i++)
    {
          min *= 10;
    }
    var max = min * 10;

    return _rnd.Next(min, max);
}
1
HamedH

Je suis venu avec cette méthode parce que je ne veux pas utiliser la méthode aléatoire:

public static string generate_Digits(int length)
{
    var rndDigits = new System.Text.StringBuilder().Insert(0, "0123456789", length).ToString().ToCharArray();
    return string.Join("", rndDigits.OrderBy(o => Guid.NewGuid()).Take(length));
}

j'espère que cela t'aides.

1
Chtiwi Malek
private static Random random = new Random((int)DateTime.Now.Ticks);//thanks to McAden

public long LongBetween(long maxValue, long minValue)
{
    return (long)Math.Round(random.NextDouble() * (maxValue - minValue - 1)) + minValue;
}
1
mohghaderi
Random random = new Random();
string randomNumber = string.Join(string.Empty, Enumerable.Range(0, 10).Select(number => random.Next(0, 9).ToString()));
0
Oleg