C#生成不重复随机字符串类

C#生成不重复随机字符串类可以通过以下几个步骤来实现:

  1. 导入命名空间:System.Security.Cryptography和System.Text。

C#
using System.Security.Cryptography;
using System.Text;

  1. 定义一个生成随机字符串的函数,函数可以包括一个参数,指定生成的字符串的长度。函数内部要创建一个随机数生成器对象,并使用该对象生成一个随机数序列。随机数序列可以通过使用GUID.NewGuid().ToByteArray()方法获取。将随机数序列转换为Base64编码的字符串,然后截取指定长度的子字符串,作为生成的随机字符串。如果生成的字符串已经存在,函数将继续生成新的随机字符串,直到生成的字符串不重复为止。

C#
public static string GenerateRandomString(int length)
{
string randomString = string.Empty;
while (string.IsNullOrEmpty(randomString))
{
byte[] randomBytes = new byte[16];
using (var rng = RandomNumberGenerator.Create())
{
rng.GetBytes(randomBytes);
}
randomString = Convert.ToBase64String(randomBytes);
randomString = randomString.Substring(0, length);
if (IsDuplicateString(randomString)) randomString = string.Empty;
}
return randomString;
}

  1. 编写函数IsDuplicateString用于检查生成的字符串是否已经存在。函数可以使用一个列表来存储已经生成过的字符串。

``` C#
private static readonly List _existingStrings = new List();

public static bool IsDuplicateString(string str)
{
    if (_existingStrings.Contains(str))
    {
        return true;
    }
    else
    {
        _existingStrings.Add(str);
        return false;
    }
}

```

至此,我们已经成功地实现了一个C#生成不重复随机字符串类,我们可以通过以下代码来调用这个类。

 string randomString = GenerateRandomString(10);
 Console.WriteLine("生成随机字符串: " + randomString);

下面是两个示例说明:

  • 长度为10的随机字符串

C#
string randomString = GenerateRandomString(10);
Console.WriteLine("生成随机字符串: " + randomString);

输出结果:

生成随机字符串: Uqp6ua5yc5U=

  • 长度为20的随机字符串,连续生成5个随机字符串

C#
for(int i = 0; i < 5; i++)
{
string randomString = GenerateRandomString(20);
Console.WriteLine("生成随机字符串: " + randomString);
}

输出结果:

生成随机字符串: SFtVC47z9gM0KOKmJFjH
生成随机字符串: rrit7adxDcSnmEcqedTT
生成随机字符串: iHjPZIm+NCqjp7t8Yqqa
生成随机字符串: 5tMrJVjDnaU7LkVeIwB8
生成随机字符串: ietVxj1H+8L/phACM68g

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#生成不重复随机字符串类 - Python技术站

(0)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • c#使用process.start启动程序报错解决方法

    下面为你讲解一下“c#使用process.start启动程序报错解决方法”的完整攻略。 问题描述 在使用 C# 的 Process.Start() 方法启动程序时,可能会遇到以下报错信息: System.ComponentModel.Win32Exception (0x80004005): 系统找不到指定的文件。 at System.Diagnostics.…

    C# 2023年5月15日
    00
  • 阿里大鱼简单发送短信功能.net core版

    阿里大鱼是阿里云旗下的短信发送平台,它提供了多种发送短信的方式,包括API、SDK和控制台等。在使用阿里大鱼发送短信时,需要先在控制台上创建一个应用,并获取到App Key、App Secret以及短信模板等信息。本文将介绍如何使用 .NET Core 版本的阿里大鱼 SDK 实现简单的发送短信功能。 准备工作 创建阿里云账号,进入阿里云控制台:https:…

    C# 2023年5月31日
    00
  • C# PictureBox图片控件实现图片交换

    下面是“C# PictureBox图片控件实现图片交换”的完整攻略: 简介 在.NET Windows Forms应用程序中,PictureBox控件是一个常用的控件,用于显示图像并对其进行操作。其中,图片交换是一个常见的操作,本文将从以下几个方面介绍如何使用PictureBox控件实现图片交换: PictureBox控件的基本使用; 从本地文件读取图片并显…

    C# 2023年5月31日
    00
  • 未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。

    这个错误提示通常表示程序在加载某个DLL文件时出现了问题,这个DLL文件可能是应用程序的依赖项之一,或者是应用程序本身的一部分。以下是解决这个错误的一些常见步骤: 1. 检查DLL文件的位数 如果应用程序是64位的,那么它需要使用64位的DLL文件。如果应用程序是32位的,那么它需要使用32位的DLL文件。如果你将不同位数的DLL文件混合使用会导致这个错误,…

    C# 2023年5月15日
    00
  • C#中把英文字母转换为大写或小写的方法

    要在C#中将英文字母转换为大写或小写有多种方法,下面将介绍其中的两种方法。 方法一:使用ToUpper和ToLower方法 使用这种方法可以将一个字符串的所有英文字母全部转换为大写或小写。ToUpper方法将所有英文字母转换为大写,ToLower方法将所有英文字母转换为小写。下面是一个示例代码: string str = "Hello World!…

    C# 2023年6月6日
    00
  • C#实现操作windows系统服务(service)的方法

    C#实现操作Windows系统服务的方法,可以通过以下几个步骤来完成: 引入System.ServiceProcess命名空间 在代码文件中,使用以下代码引入System.ServiceProcess命名空间: using System.ServiceProcess; 创建服务的控制器类 public partial class Service1 : Ser…

    C# 2023年6月6日
    00
  • C#计算器编写代码

    以下是关于”C#计算器编写代码”的完整攻略: 1. 确定需求 在开始编写任何程序之前,首先需要明确程序的需求,即需要实现哪些功能。对于一个计算器程序,主要功能应该包括以下几个部分: 能够显示数字和符号的界面 能够进行加减乘除等基本运算 能够进行小数点的输入 能够进行连续的计算,即前一个计算结果可以作为后一个计算的输入 能够清空当前输入的数据 除了上述基本功能…

    C# 2023年5月31日
    00
  • Node.js利用Express实现用户注册登陆功能(推荐)

    对于“Node.js利用Express实现用户注册登陆功能(推荐)”这个主题,我有如下的详细讲解和完整攻略。 1. 准备工作 在开始进行用户注册登陆功能的实现前,需要确保已经安装好了Node.js和Express框架。 2. 创建项目目录和文件 在命令行中,使用如下命令创建项目目录: mkdir node-login 进入该目录,使用如下命令创建项目文件: …

    C# 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部