C# 随机生成字符串

/// <summary>
/// 生成随机纯字母组合
/// </summary>
/// <param name="count"> 位数</param>
/// <returns> 随机码</returns>
private string GetRandomString( int count)
{
        int number;
        string checkCode = String.Empty;     //存放随机码的字符串  

        System. Random random = new Random( DateTime.Now.Millisecond * 2);

        for ( int i = 0; i < count; i++) //产生4位校验码  
        {
            number = random.Next();
            number = number % 36;
            if (number < 10)
            {
                    number += 48;    //数字0-9编码在48-57  
            }
            else
            {
                    number += 55;    //字母A-Z编码在65-90  
            }

            checkCode += (( char)number).ToString();
        }
        return checkCode;
}

/// <summary>
/// 按位数取得随机码(纯数字)
/// </summary>
/// <param name="num"> 位数</param>
/// <returns> 随机码</returns>
public string GetRandomNumber( int num)
{
        string str = "";
        int seed = Math.Abs((int )BitConverter .ToUInt32(Guid.NewGuid().ToByteArray(), 0));
        Random random = new Random(seed);

        for ( int i = 0; i < num; i++)
        {
            str += random.Next(10);
        }
        return str;
}

/// <summary>
/// 生成随机字母字符串(数字字母混和)
/// </summary>
/// <param name="codeCount"> 待生成的位数 </param>
public string GetRandomCharAndNumber( int codeCount)
{
        
    string str = string.Empty;
    int rep = 0;
    long num2 = DateTime.Now.Ticks + rep;
    rep++;
    Random random = new Random((( int)((( ulong)num2) & 0xffffffffL)) | ((int)(num2 >> rep)));
    for ( int i = 0; i < codeCount; i++)
    {
        char ch;
        int num = random.Next();
        if ((num % 2) == 0)
        {
            ch = ( char)(0x30 + (( ushort)(num % 10)));
        }
        else
        {
            ch = ( char)(0x41 + (( ushort)(num % 0x1a)));
        }
        str = str + ch.ToString();
    }
    return str;
}
本文为“老吴笔记”的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注