domingo, 30 de agosto de 2009

Random Number - Random String C#

Numero Aleatorios
Con ASP.NET tenemos tres métodos que nos generan un número aleatorio, pero primero de todo tenemos que inicializar la clase random:

// Creamos el objeto random
Random r = new Random();

// O para los más puritamos,
// añadimos un plus de aleatoriedad eligiendo una semilla con cierto grado de pseudoaleatoriedad
Random r = new Random(DateTime.Now.Millisecond);

Y una vez tenemos el objeto, utilizaremos uno de esos tres métodos.

1.- El método Next

Tiene tres sobrecargas:
int aleat1 = r.Next();

// Le imponemos un máximo
int aleat2 = r.Next(100);

// Le imponemos un rango, por ejemplo queremos un número de 3 cifras
int aleat3 = r.Next(100, 999);
//Para el caso, el valor 999 no se podria generar

2.- El método NextDouble
// Devuelve un double entre 0 y 1
int aleat4 = r.NextDouble();

3.- El método NextBytes
byte[] buffer = new byte[100];
r.NextBytes(buffer);


Es bastante sencillo y rapido... Hay que recordar que Random ya esta dentro de System, por lo que no hay que agregar mas librerias


String Aleatorio
Este metodo lo encontre aki:
http://www.c-sharpcorner.com/UploadFile/mahesh/RandomNumber11232005010428AM/RandomNumber.aspx

La verdad que funciona; pero no como yo quisiera, pero eso se arregla facil... no modifico el codigo para no entra en "plaguio" pero el codigo es basicamente el siguiente:


//Generates a random string with teh given length
//size->Size of the string
//LowerCase->If true, generate lowercase string

private string RandomString(int size, bool lowerCase)
{
StringBuilder builder = new StringBuilder();
Random random = new Random();
char ch;
for(int i=0; i{
ch=Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65)));
builder.Append(ch);
}
if(loweCase)
return.builder.ToString().ToLower();
return.builder.ToString();
}

No hay comentarios: