跳至页脚内容
.NET 帮助

C# 随机整数(开发人员如何使用)

在 C# 中创建一个随机整数,开发人员可以利用 Random 类,这是软件编程中用于生成随机性的基本工具。 随机整数生成是编程中的一个关键概念,能够用于统计模拟、游戏开发、建模不可预测的事件、生成动态内容和实现具有随机输入的算法等任务。 它在许多场景中都有益处,从创建随机游戏关卡到重新排列列表中的项目或进行统计分析。

如何使用 C# 随机整数

  1. 创建一个新的 C# 项目。
  2. 构造 Random 类的一个实例。
  3. 使用 Next() 方法来生成随机整数。
  4. 如果需要,定义随机整数的范围。
  5. 在程序中使用随机整数,并在需要时重复这个过程。

什么是 C# 随机整数

Random 类 提供了一种简单而适应性强的方式在 C# 中生成随机数。 Next()Next(minValue, maxValue) 方法提供了在方便的范围内生成伪随机数。 此外,Random 类允许定制种子值,便于为测试和调试提供可重复的随机序列。

在本文中,我们探索 Random 类在 C# 中的功能,包括其用法、安全预防措施以及生成随机数的最佳实践。 我们还将展示各种场景和示例,展示如何利用随机化增强其 C# 程序。 理解 C# 的随机整数生成使开发人员能够在其应用程序中引入不可预测性,最终提升用户体验并促进软件开发创新。

基础随机整数生成

Next() 方法可以不带参数使用,以最简单的方式生成非负随机整数。

// Create an instance of Random
Random random = new Random();
// Generate a random integer
int randomNumber = random.Next();
// Create an instance of Random
Random random = new Random();
// Generate a random integer
int randomNumber = random.Next();
' Create an instance of Random
Dim random As New Random()
' Generate a random integer
Dim randomNumber As Integer = random.Next()
$vbLabelText   $csharpLabel

NextDouble() 方法可以生成介于 0.0 和 1.0 之间的随机浮点数。

范围内的随机数

使用 Next(minValue, maxValue) 方法生成在指定范围内的随机数。 该方法返回大于等于 minValue 且小于 maxValue 的随机数。

// Create an instance of Random
Random rnd = new Random();
// Generate a random integer value between 1 and 100
int randomNumberInRange = rnd.Next(1, 101);
// Create an instance of Random
Random rnd = new Random();
// Generate a random integer value between 1 and 100
int randomNumberInRange = rnd.Next(1, 101);
' Create an instance of Random
Dim rnd As New Random()
' Generate a random integer value between 1 and 100
Dim randomNumberInRange As Integer = rnd.Next(1, 101)
$vbLabelText   $csharpLabel

小于最大值的随机整数

如果您只需一个小于指定最大值的随机数,请使用 Next(maxValue) 方法。 它返回一个小于提供的 maxValue 的随机整数。

// Create an instance of Random
Random random = new Random();
// Generate a random number between 0 and 99
int randomNumberLessThanMax = random.Next(100);
// Create an instance of Random
Random random = new Random();
// Generate a random number between 0 and 99
int randomNumberLessThanMax = random.Next(100);
' Create an instance of Random
Dim random As New Random()
' Generate a random number between 0 and 99
Dim randomNumberLessThanMax As Integer = random.Next(100)
$vbLabelText   $csharpLabel

生成随机字节

NextBytes(byte[] buffer) 方法允许您用随机值填充字节数组,这对于创建随机二进制数据非常有用。

// Create an instance of Random
Random random = new Random();
// Create a byte array
byte[] randomBytes = new byte[10];
// Fill the array with random byte values
random.NextBytes(randomBytes);
// Create an instance of Random
Random random = new Random();
// Create a byte array
byte[] randomBytes = new byte[10];
// Fill the array with random byte values
random.NextBytes(randomBytes);
' Create an instance of Random
Dim random As New Random()
' Create a byte array
Dim randomBytes(9) As Byte
' Fill the array with random byte values
random.NextBytes(randomBytes)
$vbLabelText   $csharpLabel

自定义种子值

用特定的种子值初始化 Random 实例以实现一致的运行结果。 使用相同的种子有助于获得可重复的结果,如测试场景。

// Initialize Random with a seed value
Random random = new Random(12345);
// Generate a random integer
int randomNumberWithSeed = random.Next();
// Initialize Random with a seed value
Random random = new Random(12345);
// Generate a random integer
int randomNumberWithSeed = random.Next();
' Initialize Random with a seed value
Dim random As New Random(12345)
' Generate a random integer
Dim randomNumberWithSeed As Integer = random.Next()
$vbLabelText   $csharpLabel

线程安全的随机生成

在线程环境中,线程安全的随机数生成是至关重要的。 一种常见的技术是使用 ThreadLocal 类为每个线程创建唯一的 Random 实例。

// Create a thread-local Random instance
ThreadLocal<Random> threadLocalRandom = new ThreadLocal<Random>(() => new Random());
// Generate a random number safely in a multi-threaded environment
int randomNumberThreadSafe = threadLocalRandom.Value.Next();
// Create a thread-local Random instance
ThreadLocal<Random> threadLocalRandom = new ThreadLocal<Random>(() => new Random());
// Generate a random number safely in a multi-threaded environment
int randomNumberThreadSafe = threadLocalRandom.Value.Next();
' Create a thread-local Random instance
Dim threadLocalRandom As New ThreadLocal(Of Random)(Function() New Random())
' Generate a random number safely in a multi-threaded environment
Dim randomNumberThreadSafe As Integer = threadLocalRandom.Value.Next()
$vbLabelText   $csharpLabel

高级随机技术

为了生成具有特定分布(如高斯分布)的随机数,您可能需要第三方库或自定义方法。

// Example of generating random numbers with a Gaussian distribution using MathNet.Numerics
using MathNet.Numerics.Distributions;

// Parameters for the Gaussian distribution: mean and standard deviation
double mean = 0;
double standardDeviation = 1;

// Generate a random number with a Gaussian distribution
double randomNumberWithGaussianDistribution = Normal.Sample(new Random(), mean, standardDeviation);
// Example of generating random numbers with a Gaussian distribution using MathNet.Numerics
using MathNet.Numerics.Distributions;

// Parameters for the Gaussian distribution: mean and standard deviation
double mean = 0;
double standardDeviation = 1;

// Generate a random number with a Gaussian distribution
double randomNumberWithGaussianDistribution = Normal.Sample(new Random(), mean, standardDeviation);
' Example of generating random numbers with a Gaussian distribution using MathNet.Numerics
Imports MathNet.Numerics.Distributions

' Parameters for the Gaussian distribution: mean and standard deviation
Private mean As Double = 0
Private standardDeviation As Double = 1

' Generate a random number with a Gaussian distribution
Private randomNumberWithGaussianDistribution As Double = Normal.Sample(New Random(), mean, standardDeviation)
$vbLabelText   $csharpLabel

这些示例展示了 C# Random 类在生成随机数方面的各种应用。 请根据您的特定需求和情况选择最适合的方法。

什么是 IronPDF?

IronPDF 是一个流行的 C# 库,提供了各种用于创建、编辑和修改 PDF 文档的功能。 虽然它的主要用途是与 PDF 相关的操作,但也可以与 C# 一起用于不同的任务,例如将随机整数插入到 PDF 文档中。

IronPDF 的一个关键特性是其 HTML 到 PDF 转换 功能,保持布局和样式,使其在报告、发票和文档中表现出色。 您可以轻松地将 HTML 文件、URL 和 HTML 字符串转换为 PDF。

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        // Create a ChromePdfRenderer instance
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        // Create a ChromePdfRenderer instance
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Create a ChromePdfRenderer instance
		Dim renderer = New ChromePdfRenderer()

		' 1. Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' 2. Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF 的功能:

  • IronPDF 允许开发人员从 HTML 内容创建高质量的 PDF 文档,非常适合存档文档、生成报告和抓取网页。
  • 轻松将图像文件(如 JPEG, PNG, BMP 和 GIF)转换为 PDF 文档。 您可以从基于图像的内容(如扫描文档或照片)中创建可搜索和可编辑的 PDF 文件。
  • 它提供了全面的 PDF 操作和修改功能,允许您以编程方式分割、旋转和重新排列 PDF 页面。 您可以向现有的 PDF 添加文本、图像、注释和水印。
  • IronPDF 支持处理 PDF 表单,使开发人员能够填写表单字段、检索表单数据并动态创建 PDF 表单。
  • 安全功能包括加密、密码保护和数字签名 PDF 文档,以确保数据隐私和防止未经授权的访问。

欲了解更多信息,请参阅 IronPDF 文档

IronPDF 的安装:

要安装 IronPDF 库,请使用包管理器控制台或 NuGet 包管理器:

Install-Package IronPdf

使用 NuGet 包管理器,搜索 "IronPDF" 以从相关 NuGet 包列表中选择并下载所需的包。

IronPDF 中的随机整数

一旦 IronPDF 安装完毕,您可以在代码中初始化它。 在导入所需的命名空间后,创建 IronPdf.HtmlToPdf 类的实例。

using IronPdf;
using System;

class Program
{
    static void Main(string[] args)
    {
        // Create a new instance of Random
        Random random = new Random();
        // Generate a random integer between 1 and 100
        int randomNumber = random.Next(1, 101);

        // Create HTML content with the random integer
        string htmlContent = $@"
            <html>
            <head><title>Random Integer PDF</title></head>
            <body>
            <h1>Random Integer: {randomNumber}</h1>
            </body>
            </html>";

        // Create a new HtmlToPdf renderer
        var renderer = new HtmlToPdf();
        // Render the HTML to a PDF
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF document
        pdf.SaveAs("output.pdf");
    }
}
using IronPdf;
using System;

class Program
{
    static void Main(string[] args)
    {
        // Create a new instance of Random
        Random random = new Random();
        // Generate a random integer between 1 and 100
        int randomNumber = random.Next(1, 101);

        // Create HTML content with the random integer
        string htmlContent = $@"
            <html>
            <head><title>Random Integer PDF</title></head>
            <body>
            <h1>Random Integer: {randomNumber}</h1>
            </body>
            </html>";

        // Create a new HtmlToPdf renderer
        var renderer = new HtmlToPdf();
        // Render the HTML to a PDF
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF document
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf
Imports System

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Create a new instance of Random
		Dim random As New Random()
		' Generate a random integer between 1 and 100
		Dim randomNumber As Integer = random.Next(1, 101)

		' Create HTML content with the random integer
		Dim htmlContent As String = $"
            <html>
            <head><title>Random Integer PDF</title></head>
            <body>
            <h1>Random Integer: {randomNumber}</h1>
            </body>
            </html>"

		' Create a new HtmlToPdf renderer
		Dim renderer = New HtmlToPdf()
		' Render the HTML to a PDF
		Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
		' Save the PDF document
		pdf.SaveAs("output.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

虽然 IronPDF 不会直接生成随机整数,但它可以将它们嵌入到 PDF 文档中。 在使用 C# 的内置 Random 类生成随机数后,您可以利用 IronPDF 的功能将它们添加到您的 PDF 中。 在添加内容后,将修改后的 PDF 文档保存到文件或流中。

C# 随机整数(其对开发人员的作用):图 3 - 上述代码输出的 PDF

上图显示了代码的输出。 有关更多详细信息,请参阅 从 HTML 创建 PDF 示例

结论

总之,利用 C# 的随机整数生成功能以及 IronPDF 的 HtmlToPdf 功能是一种强大的方法,可以动态创建包含嵌入随机数据的 PDF 文档。 通过结合 IronPDF 的 HTML 到 PDF 转换和 C# 的随机整数功能,开发人员可以轻松将动态内容集成到 PDF 文档中,从而为报告生成、数据可视化和文档自动化开启广泛的机会。

IronPDF 的 Lite 版包括一年的软件维护、升级选项和永久许可证。 带水印的试用期允许用户评估产品。 有关 IronPDF 的费用、许可和免费试用的更多详细信息,请访问 IronPDF 许可信息。 有关 Iron Software 的更多信息,请访问 关于 Iron Software

常见问题解答

如何在 C# 中生成随机整数?

要在 C# 中生成随机整数,你可以使用 Random 类。创建一个实例并使用 Next() 方法获取随机整数。例如:Random random = new Random(); int randomNumber = random.Next();

我可以在 C# 中生成特定范围内的随机整数吗?

是的,你可以通过使用 Random 类的 Next(minValue, maxValue) 方法来生成特定范围内的随机整数。例如:int randomNumberInRange = random.Next(1, 101);

使用种子值与 C# 中的 Random 类有什么好处?

使用 C# 中的 Random 类的种子值可以生成可重复的随机序列,这对于测试和调试非常有用。你可以像这样用特定种子初始化 RandomRandom random = new Random(12345);

如何确保在 C# 中进行线程安全的随机数生成?

要在多线程环境中确保线程安全的随机数生成,你可以使用 ThreadLocal 类为每个线程创建唯一的 Random 实例:ThreadLocal threadLocalRandom = new ThreadLocal(() => new Random());

在 C# 中生成随机数的一些高级技术是什么?

对于高级的随机数生成技术,如创建特定分布的数字(例如,正态分布),你可以利用 MathNet.Numerics 等第三方库。

如何使用 C# 将随机整数嵌入 PDF 文档中?

你可以使用 Random 类生成随机整数,并使用像 IronPDF 这样的库将它们嵌入到 PDF 中。这允许在 PDF 文档中创建动态内容。

如何将 HTML 内容转换为 C# 中的 PDF?

要将 HTML 内容转换为 C# 中的 PDF,请使用像 IronPDF 这样的 PDF 转换库。你可以使用 RenderHtmlAsPdf 方法将 HTML 字符串转换为 PDF 文档。

PDF 库的关键功能是什么?

一个强大的 PDF 库应提供 HTML 到 PDF 转换、图像到 PDF 转换、PDF 操作功能、表单处理,以及诸如加密和数字签名之类的安全功能。

我可以在购买前评估 PDF 库吗?

是的,许多 PDF 库提供带有水印输出的试用期供评估。你可以访问库的官方网页了解更多关于许可和定价的选项。

如何在我的 C# 项目中安装 PDF 库?

要在你的 C# 项目中安装 PDF 库,你可以使用 NuGet 包管理器。在包管理器控制台中执行 Install-Package 命令,或者在 NuGet 包管理器界面中搜索该库。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。