Easy-DotNET Easy-DotNET
🏠首页
  • 知识地图
  • 源码脑图

    • 总览
    • Program
    • WebApplication
    • Host主机
    • WebHost主机
    • 依赖注入
    • Autofac
    • Middleware中间件
    • RateLimiter限制速率
    • 响应缓存、请求解压缩
  • 设计初衷
  • 克隆
  • 类型转换
  • 日期时间
  • IO流
  • 工具类
  • 语言特性
  • 集合类
  • Codec编码
  • 文本操作
  • 数学
  • 图片
  • 网络
  • Emoji表情
  • C# 12
  • C# 11
  • C# 10
  • C# 9.0
  • C# 8.0
  • C# 早期版本
  • C# 教程
  • ORM
  • 定时任务
  • 日志
  • 认证与授权
  • Swagger
  • 对象映射
  • 熔断重试限流
  • 缓存
  • 注册发现
  • 网关
  • GraphQL
  • 更多
  • Docker

    • 简介
    • Adminer
    • Apisix
    • Apollo
    • Cassandra
    • Cerebro
    • ClickHouse
    • Consul
    • EasyMock
    • Elasticsearch
    • Emqx
    • FastDFS
    • Flink
    • Gitlab
    • Jenkins
    • Jrebel
    • MariaDB
    • MySQL
    • Percona
    • Phpmyadmin
    • PostgreSQL
    • Redis
  • Linux

    • 查看Linux系统信息
    • CentOS7调整磁盘分区
    • IO压测
    • 图形化监控工具Cockpit
  • 总览
  • 列表

    • 算法数据结构
    • API
    • 应用框架
    • 应用模板
    • 操作系统
    • 工作流
    • 入门套件
    • 示例
    • 人工智能
    • 程序集
    • Assets
    • 认证授权
    • Blazor
    • 区块链
    • 书籍
    • 自动构建
    • 报表
    • 缓存
    • 日历
    • 聊天
    • CLI
    • CLR
    • CMS
    • 代码分析和指标
    • 代码片段
    • 压缩
    • 持续集成
    • 密码学
    • 数据库
    • 数据库驱动
    • 日期时间
    • 反编译
    • 部署
    • DirectX
    • 分布式计算
    • DLR
    • 文档
    • 电商支付
    • 模拟器
    • 环境管理
    • ETL
    • 事件消息
    • Exception
    • 扩展
    • 函数式编程
    • 游戏引擎
    • GIS
    • Git工具
    • 绘图
    • GraphQL
    • GUI
    • HTML-CSS
    • HTTP
    • IDE
    • 图片处理
    • 安装工具
    • 交互式编程
    • 国际化
    • 互操作性
    • IoC
    • JS引擎
    • 日志
    • 机器学习和数据科学
    • Markdown
    • 邮件
    • 数学
    • 媒体
    • 指标
    • 微型框架
    • 最小化器
    • MVVM
    • 网络
    • 对象映射
    • Office
    • OpenAI
    • ORM
    • 包管理器
    • PDF
    • 性能分析工具
    • 协议
    • 推送通知
    • SQL构建器
    • 消息队列
    • RPC
    • 响应式编程
    • 实时通信
    • 正则表达式
    • 任务调度
    • SDK和API
    • 搜索引擎
    • 序列化
    • SMS
    • 状态机
    • 静态站点生成
    • 强命名
    • 风格指南
    • 模板引擎
    • 测试
    • 工具
    • 交易
    • UI自动测试
    • Visual Studio 插件
    • Web浏览器
    • Web框架
    • WebServers
    • WebSocket
    • Windows服务
    • WPF
    • 解析器
    • 源码生成
    • 其他
    • 资源
  • AspNetCore面试题
  • Elasticsearch面试题
  • MongoDB面试题
  • MySql面试题
  • Nginx面试题
  • RabbitMQ面试题
  • Redis面试题
  • 设计模式
  • 微服务
🧑‍💻.NET Blog
GitHub (opens new window)
🏠首页
  • 知识地图
  • 源码脑图

    • 总览
    • Program
    • WebApplication
    • Host主机
    • WebHost主机
    • 依赖注入
    • Autofac
    • Middleware中间件
    • RateLimiter限制速率
    • 响应缓存、请求解压缩
  • 设计初衷
  • 克隆
  • 类型转换
  • 日期时间
  • IO流
  • 工具类
  • 语言特性
  • 集合类
  • Codec编码
  • 文本操作
  • 数学
  • 图片
  • 网络
  • Emoji表情
  • C# 12
  • C# 11
  • C# 10
  • C# 9.0
  • C# 8.0
  • C# 早期版本
  • C# 教程
  • ORM
  • 定时任务
  • 日志
  • 认证与授权
  • Swagger
  • 对象映射
  • 熔断重试限流
  • 缓存
  • 注册发现
  • 网关
  • GraphQL
  • 更多
  • Docker

    • 简介
    • Adminer
    • Apisix
    • Apollo
    • Cassandra
    • Cerebro
    • ClickHouse
    • Consul
    • EasyMock
    • Elasticsearch
    • Emqx
    • FastDFS
    • Flink
    • Gitlab
    • Jenkins
    • Jrebel
    • MariaDB
    • MySQL
    • Percona
    • Phpmyadmin
    • PostgreSQL
    • Redis
  • Linux

    • 查看Linux系统信息
    • CentOS7调整磁盘分区
    • IO压测
    • 图形化监控工具Cockpit
  • 总览
  • 列表

    • 算法数据结构
    • API
    • 应用框架
    • 应用模板
    • 操作系统
    • 工作流
    • 入门套件
    • 示例
    • 人工智能
    • 程序集
    • Assets
    • 认证授权
    • Blazor
    • 区块链
    • 书籍
    • 自动构建
    • 报表
    • 缓存
    • 日历
    • 聊天
    • CLI
    • CLR
    • CMS
    • 代码分析和指标
    • 代码片段
    • 压缩
    • 持续集成
    • 密码学
    • 数据库
    • 数据库驱动
    • 日期时间
    • 反编译
    • 部署
    • DirectX
    • 分布式计算
    • DLR
    • 文档
    • 电商支付
    • 模拟器
    • 环境管理
    • ETL
    • 事件消息
    • Exception
    • 扩展
    • 函数式编程
    • 游戏引擎
    • GIS
    • Git工具
    • 绘图
    • GraphQL
    • GUI
    • HTML-CSS
    • HTTP
    • IDE
    • 图片处理
    • 安装工具
    • 交互式编程
    • 国际化
    • 互操作性
    • IoC
    • JS引擎
    • 日志
    • 机器学习和数据科学
    • Markdown
    • 邮件
    • 数学
    • 媒体
    • 指标
    • 微型框架
    • 最小化器
    • MVVM
    • 网络
    • 对象映射
    • Office
    • OpenAI
    • ORM
    • 包管理器
    • PDF
    • 性能分析工具
    • 协议
    • 推送通知
    • SQL构建器
    • 消息队列
    • RPC
    • 响应式编程
    • 实时通信
    • 正则表达式
    • 任务调度
    • SDK和API
    • 搜索引擎
    • 序列化
    • SMS
    • 状态机
    • 静态站点生成
    • 强命名
    • 风格指南
    • 模板引擎
    • 测试
    • 工具
    • 交易
    • UI自动测试
    • Visual Studio 插件
    • Web浏览器
    • Web框架
    • WebServers
    • WebSocket
    • Windows服务
    • WPF
    • 解析器
    • 源码生成
    • 其他
    • 资源
  • AspNetCore面试题
  • Elasticsearch面试题
  • MongoDB面试题
  • MySql面试题
  • Nginx面试题
  • RabbitMQ面试题
  • Redis面试题
  • 设计模式
  • 微服务
🧑‍💻.NET Blog
GitHub (opens new window)
npm
  • 最全工具类

    • 设计初衷
  • 克隆

    • 对象克隆-CloneUtil
  • 类型转换

    • 类型转换-ConvertUtil
  • 日期时间

    • 日期工具-DateTimeUtil
    • 时间戳工具-TimestampUtil
    • 农历工具-LunarCalendarUtil
    • 计时器工具-TimerUtil
  • IO流

    • IO工具类-IoUtil
    • 文件工具类-FileUtil
    • 文件类型判断-FileTypeUtil
    • 文件监听-WatchMonitor
    • 文件跟随-Tailer
  • 工具类

    • 概述
    • 信息脱敏工具-DesensitizedUtil
    • 字符串工具-StrUtil
    • 16进制工具-HexUtil
    • Escape工具-EscapeUtil
    • Hash算法-HashUtil
    • URL工具-URLUtil
    • XML工具-XmlUtil
    • 对象工具-ObjectUtil
    • 反射工具-ReflectUtil
    • 泛型类型工具-TypeUtil
    • 分页工具-PageUtil
    • 类工具-ClassUtil
    • 程序集工具-DLLUtil
    • 枚举工具-EnumUtil
    • 环境工具-EnvUtil
    • 进程工具-ProcessUtil
    • 运行时工具-RuntimeUtil
    • 数字工具-NumberUtil
    • 数组工具-ArrayUtil
    • 随机工具-RandomUtil
      • 简介
      • EasyTool.RandomUtil 类
        • RandomInt-生成指定范围内的随机整数
        • RandomDigitString-生成指定位数的随机数字字符串
        • RandomAlphanumericString-生成指定位数的随机字母数字字符串
        • RandomLetterString-生成指定长度的随机字母字符串
        • RandomBool-生成随机的布尔值
        • RandomIntArray-生成指定长度的随机数组
        • RandomDoubleArray-生成指定长度的随机双精度浮点数数组
        • RandomStringArray-生成指定长度的随机字符串数组
        • RandomDate-生成随机日期
        • RandomEnumValue-生成随机枚举值
        • GetRandomInt-获取一个指定范围内的随机整数
        • GetRandomDouble-获取一个指定范围内的随机双精度浮点数
        • GetRandomDateTime-获取一个指定范围内的随机日期时间
        • GetRandomElement-从给定的集合中随机选取一个元素
        • RandomNumberString-生成指定长度的随机数字字符串
        • RandomString-生成指定长度的随机字母数字字符串
      • 示例代码
        • 输出结果
    • 唯一ID工具-IdUtil
    • 压缩工具-ZipUtil
    • 正则工具-RegexUtil
    • 身份证工具-IdcardUtil
    • 社会信用代码工具-CreditCodeUtil
    • MEF加载工具-MEFUtil
  • 语言特性

    • 单例工具-SingletonUtil
    • 二进码十进数-BCDUtil
    • 树结构工具-TreeUtil
  • 集合类

    • 概述
    • 字典工具-DictionaryUtil
    • 列表工具-ListUtil
    • Iterator工具-IteratorUtil
    • 队列工具-QueueUtil
    • 堆栈工具-StackUtil
    • 双向链表-LinkedListUtil
  • Codec编码

    • Base62编码解码-Base62
    • Base64编码解码-Base64
    • Base32编码解码-Base32
    • 莫尔斯电码-Morse
    • BCD码-BCD
    • 回转N位密码-Rot
    • Punycode实现-PunyCode
  • 文本操作

    • CSV文件处理工具-CsvUtil
    • Unicode编码转换工具-UnicodeUtil
    • 字符串切割-StrSplitter
  • 数学

    • 数学相关-MathUtil
    • 数据预测-PredictUtil
  • 图片

    • 图片工具-ImgUtil
  • 网络

    • 网络工具-NetUtil
  • Emoji表情

    • Emoji工具-EmojiUtil
目录

随机工具-RandomUtil

# 简介

在C#中,可以使用Random类来生成随机数。Random类提供了多个不同的方法来生成随机数,其中最常用的是Next()方法。Next()方法可以生成一个指定范围内的随机整数,它有多种不同的重载形式,可以接受最小值和最大值、只接受最大值等参数。

除了Next()方法,Random类还提供了以下几个常用方法:

  • NextDouble(): 生成一个0.0到1.0之间的随机双精度浮点数。
  • NextBytes(byte[] buffer): 生成指定长度的随机字节数组。
  • NextBytes(Span<byte> buffer): 生成指定长度的随机字节数组。
  • NextBytes(Span<byte> buffer): 生成指定长度的随机字节数组。
  • Next(minValue, maxValue): 生成一个指定范围内的随机整数。
  • Next(minValue, maxValue, count): 生成指定数量的指定范围内的随机整数。
  • Next(minValue, maxValue, count, exclusionList): 生成指定数量的指定范围内的随机整数,且这些整数不在排除列表中。

需要注意的是,Random类生成的随机数并不是真正的随机数,而是伪随机数,其生成的序列是确定的,因此在需要高度随机性的场合,应该使用其他更加严格的随机数生成器。

# EasyTool.RandomUtil 类

静态工具类 RandomUtil,提供了多种类型的随机生成方法。它可以生成随机整数、随机数字字符串、随机字母数字字符串、随机字母字符串、随机布尔值、随机数组、随机字符串数组、随机日期和随机枚举值。这些方法可以用于各种需要随机数据的应用场景,比如测试数据生成、密码生成、数据脱敏等。

RandomUtil方法列表:

  • RandomInt: 生成指定范围内的随机整数。
  • RandomDigitString: 生成指定位数的随机数字字符串。
  • RandomAlphanumericString: 生成指定位数的随机字母数字字符串。
  • RandomLetterString: 生成指定长度的随机字母字符串。
  • RandomBool: 生成随机的布尔值。
  • RandomIntArray: 生成指定长度的随机整数数组。
  • RandomDoubleArray: 生成指定长度的随机双精度浮点数数组。
  • RandomStringArray: 生成指定长度的随机字符串数组。
  • RandomDate: 生成随机日期。
  • RandomEnumValue: 生成随机枚举值。
  • GetRandomInt: 获取一个指定范围内的随机整数
  • GetRandomDouble: 获取一个指定范围内的随机双精度浮点数
  • GetRandomDateTime: 获取一个指定范围内的随机日期时间
  • GetRandomElement: 从给定的集合中随机选取一个元素
  • RandomNumberString: 生成指定长度的随机数字字符串
  • RandomString: 生成指定长度的随机字母数字字符串

# RandomInt-生成指定范围内的随机整数

/// <summary>
/// 生成指定范围内的随机整数
/// </summary>
/// <param name="min">随机整数的最小值</param>
/// <param name="max">随机整数的最大值</param>
/// <returns>生成的随机整数</returns>
public static int RandomInt(int min, int max)

# RandomDigitString-生成指定位数的随机数字字符串

/// <summary>
/// 生成指定位数的随机数字字符串
/// </summary>
/// <param name="length">生成的随机数字字符串的长度</param>
/// <returns>生成的随机数字字符串</returns>
public static string RandomDigitString(int length)

# RandomAlphanumericString-生成指定位数的随机字母数字字符串

/// <summary>
/// 生成指定位数的随机字母数字字符串
/// </summary>
/// <param name="length">生成的随机字母数字字符串的长度</param>
/// <returns>生成的随机字母数字字符串</returns>
public static string RandomAlphanumericString(int length)

# RandomLetterString-生成指定长度的随机字母字符串

/// <summary>
/// 生成指定长度的随机字母字符串
/// </summary>
/// <param name="length">生成的随机字母字符串的长度</param>
/// <returns>生成的随机字母字符串</returns>
public static string RandomLetterString(int length)

# RandomBool-生成随机的布尔值

/// <summary>
/// 生成随机的布尔值
/// </summary>
/// <returns>生成的随机布尔值</returns>
public static bool RandomBool()

# RandomIntArray-生成指定长度的随机数组

/// <summary>
/// 生成指定长度的随机数组
/// </summary>
/// <param name="length">生成的随机数组的长度</param>
/// <returns>生成的随机数组</returns>
public static int[] RandomIntArray(int length)

# RandomDoubleArray-生成指定长度的随机双精度浮点数数组

/// <summary>
/// 生成指定长度的随机双精度浮点数数组
/// </summary>
/// <param name="length">生成的随机数组的长度</param>
/// <returns>生成的随机双精度浮点数数组</returns>
public static double[] RandomDoubleArray(int length)

# RandomStringArray-生成指定长度的随机字符串数组

/// <summary>
/// 生成指定长度的随机字符串数组
/// </summary>
/// <param name="length">生成的随机数组的长度</param>
/// <param name="strLength">每个随机字符串的长度</param>
/// <returns>生成的随机字符串数组</returns>
public static string[] RandomStringArray(int length, int strLength)

# RandomDate-生成随机日期

/// <summary>
/// 生成随机日期
/// </summary>
/// <param name="startDate">随机日期的最早时间</param>
/// <param name="endDate">随机日期的最晚时间</param>
/// <returns>生成的随机日期</returns>
public static DateTime RandomDate(DateTime startDate, DateTime endDate)

# RandomEnumValue-生成随机枚举值

/// <summary>
/// 生成随机枚举值
/// </summary>
/// <typeparam name="T">枚举类型</typeparam>
/// <returns>生成的随机枚举值</returns>
public static T RandomEnumValue<T>()

# GetRandomInt-获取一个指定范围内的随机整数

/// <summary>
/// 获取一个指定范围内的随机整数
/// </summary>
/// <param name="minValue">最小值</param>
/// <param name="maxValue">最大值</param>
/// <returns>随机整数</returns>
public static int GetRandomInt(int minValue, int maxValue)

# GetRandomDouble-获取一个指定范围内的随机双精度浮点数

/// <summary>
/// 获取一个指定范围内的随机双精度浮点数
/// </summary>
/// <param name="minValue">最小值</param>
/// <param name="maxValue">最大值</param>
/// <returns>随机双精度浮点数</returns>
public static double GetRandomDouble(double minValue, double maxValue)

# GetRandomDateTime-获取一个指定范围内的随机日期时间

/// <summary>
/// 获取一个指定范围内的随机日期时间
/// </summary>
/// <param name="minValue">最小值</param>
/// <param name="maxValue">最大值</param>
/// <returns>随机日期时间</returns>
public static DateTime GetRandomDateTime(DateTime minValue, DateTime maxValue)

# GetRandomElement-从给定的集合中随机选取一个元素

/// <summary>
/// 从给定的集合中随机选取一个元素
/// </summary>
/// <typeparam name="T">元素类型</typeparam>
/// <param name="source">集合</param>
/// <returns>随机选取的元素</returns>
public static T GetRandomElement<T>(IEnumerable<T> source)

# RandomNumberString-生成指定长度的随机数字字符串

/// <summary>
/// 生成指定长度的随机数字字符串
/// </summary>
/// <param name="length">字符串长度</param>
/// <returns>随机数字字符串</returns>
public static string RandomNumberString(int length)

# RandomString-生成指定长度的随机字母数字字符串

/// <summary>
/// 生成指定长度的随机字母数字字符串
/// </summary>
/// <param name="length">字符串长度</param>
/// <returns>随机字母数字字符串</returns>
public static string RandomString(int length)

# 示例代码

using System;

class Program
{
    static void Main(string[] args)
    {
        Random random = new Random();
        int randomNumber = random.Next(1, 11);
        Console.WriteLine("Generated random number: " + randomNumber);

        double randomDouble = random.NextDouble();
        Console.WriteLine("Generated random double: " + randomDouble);

        byte[] randomBytes = new byte[10];
        random.NextBytes(randomBytes);
        Console.WriteLine("Generated random bytes: " + BitConverter.ToString(randomBytes));
    }
}

# 输出结果

Generated random number: 7
Generated random double: 0.8961873920581167
Generated random bytes: E9-51-24-89-56-30-28-C8-8E-39
上次更新: 2023/04/26, 22:10:06
数组工具-ArrayUtil
唯一ID工具-IdUtil

← 数组工具-ArrayUtil 唯一ID工具-IdUtil→

Theme by Vdoing | Copyright © 2019-2024 一个大西瓜 | MIT License | 苏ICP备2023013501号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式