Generate Random Number And Random String In C#
Generate Random Number And Random String In C#
The Random class of .NET class library provides functionality to generate random numbers in C#. The Random class constructors have two overloaded forms. It takes either no value or it takes a seed value.
Random number generator in C#
The following code returns a random number between the min and the max range.
- / Generate a random number between two numbers.
- public int RandomNumber(int min, int max)
- {
- Random random = new Random();
- return random.Next(min, max);
- }
The Random class provides Random.Next(), Random.NextBytes(), and Random.NextDouble() methods. The Random.Next() method returns a random number, Random.NextBytes() returns an array of bytes filled with random numbers, and Random.NextDouble() returns a random number between 0.0 and 1.0.
The Random.Next() method has three overloaded forms and allows you to set the minimum and maximum range of the random number.
The following code returns a random number.
- int num = random.Next();
The following code returns a random number less than 1000.
- int num = random.Next(1000);
- / Generate a random number between two numbers
- public int RandomNumber(int min, int max)
- {
- Random random = new Random();
- return random.Next(min, max);
- }
You can even combine the two methods - RandomNumber and RandomString to generate a combination of random string and numbers.
- // Generate a random string with a given size
- public string RandomString(int size, bool lowerCase)
- {
- StringBuilder builder = new StringBuilder();
- Random random = new Random();
- char ch;
- for (int i = 0; i < size; i++)
- {
- ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65)));
- builder.Append(ch);
- }
- if (lowerCase)
- return builder.ToString().ToLower();
- return builder.ToString();
- }
The following code generates a password of length 10 with first 4 letters lowercase, next 4 letters numbers, and last 2 letters as uppercase.
- // Generate a random password
- public string RandomPassword()
- {
- StringBuilder builder = new StringBuilder();
- builder.Append(RandomString(4, true));
- builder.Append(RandomNumber(1000, 9999));
- builder.Append(RandomString(2, false));
- return builder.ToString();
- }
Here is the complete code written in .NET Core 2.0.
- using System;
- using System.Text;
- class RandomNumberSample
- {
- static void Main(string[] args)
- {
- RandomGenerator generator = new RandomGenerator();
- int rand = generator.RandomNumber(5, 100);
- Console.WriteLine($"Random number between 5 and 100 is {rand}");
- string str = generator.RandomString(10, false);
- Console.WriteLine($"Random string of 10 chars is {str}");
- string pass = generator.RandomPassword();
- Console.WriteLine($"Random string of 6 chars is {pass}");
- Console.ReadKey();
- }
- }
- public class RandomGenerator
- {
- // Generate a random number between two numbers
- public int RandomNumber(int min, int max)
- {
- Random random = new Random();
- return random.Next(min, max);
- }
- // Generate a random string with a given size
- public string RandomString(int size, bool lowerCase)
- {
- StringBuilder builder = new StringBuilder();
- Random random = new Random();
- char ch;
- for (int i = 0; i < size; i++)
- {
- ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65)));
- builder.Append(ch);
- }
- if (lowerCase)
- return builder.ToString().ToLower();
- return builder.ToString();
- }
- // Generate a random password
- public string RandomPassword()
- {
- StringBuilder builder = new StringBuilder();
- builder.Append(RandomString(4, true));
- builder.Append(RandomNumber(1000, 9999));
- builder.Append(RandomString(2, false));
- return builder.ToString();
- }
- }
Comments
Post a Comment