跳過到頁腳內容
.NET幫助

C# 隨機整數(對於開發者的運行原理)

要在 C# 中建立一個隨機整數,開發人員可以使用 Random 類,這是軟體程式設計中用於產生隨機數的基本工具。 隨機整數生成是程式設計中的一個關鍵概念,可實現統計模擬、遊戲開發、不可預測事件建模、製作動態內容以及使用隨機輸入實施演算法等任務。 從建立隨機遊戲關卡到重新排列清單中的項目或執行統計分析,在許多情境中都能發揮效益。

如何使用 C# 隨機 Int 數

1.建立一個新的 C# 專案。

  1. 建構 Random 類別的一個實例。
  2. 使用 Next() 法產生一個隨機整數。 4.如有需要,請定義隨機整數的範圍。 5.在您的程式中利用隨機整數,並在需要時重複此程序。

什麼是 C# 隨機 Int

隨機類提供了在 C# 中產生隨機數的直接且適應性強的方法。 Next()Next(minValue, maxValue) 方法提供了方便範圍內的偽隨機數產生器。 此外,Random 類別允許自訂種子值,方便產生可重複的隨機序列以進行測試和除錯。

在本文中,我們將探討 C# 中 Random 類別的功能,包括其用法、安全注意事項以及產生隨機數的最佳實踐。 我們也將示範各種運用的情境與範例,展示開發人員如何利用隨機化來強化他們的 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](https://ironpdf.com/)?

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 Package Manager,搜尋"IronPDF",從相關的 NuGet 套件清單中選擇並下載所需的套件。

IronPDF 中的隨機 Int

安裝 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# Random Int (How It Works For Developers):圖 3 - 從之前的程式碼輸出的 PDF

上面的畫面顯示了程式碼的輸出。 如需詳細資訊,請參閱 Creating a PDF from HTML Example

結論

總而言之,使用 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 類別有什麼好處?

使用帶有種子值的 Random 類別可以生成可重複的隨機序列,這對於測試和調試非常有用。可以這樣初始化 RandomRandom random = new Random(12345);

如何確保在 C# 中執行執行緒安全的隨機數生成?

要在多線程環境中確保執行緒安全的隨機數生成,可以使用 ThreadLocal 類別為每個線程創建唯一的 Random 實例:ThreadLocal threadLocalRandom = new ThreadLocal(() => new Random());

在 C# 中生成隨機數有哪些高級技術?

要進行高級的隨機數生成技術,例如創建具有特定分佈的數字(例如高斯分佈),可以利用第三方庫,如 MathNet.Numerics。

如何在 C# 中將隨機整數嵌入到 PDF 文件中?

您可以使用 Random 類別生成隨機整數,並使用像 IronPDF 這樣的庫將它們嵌入到 PDF 中。這樣可以在 PDF 文件中創建動態內容。

如何在 C# 中將 HTML 內容轉換為 PDF?

要在 C# 中將 HTML 內容轉換為 PDF,可以使用如 IronPDF 這樣的 PDF 轉換庫。可以使用像 RenderHtmlAsPdf 的方法將 HTML 字串轉換為 PDF 文檔。

在選擇 PDF 庫時應注意哪些關鍵特性?

強大的 PDF 庫應具備 HTML 到 PDF 轉換、圖像到 PDF 轉換、PDF 操作功能、表單處理以及加密和數字簽名等安全功能。

我可以在購買之前評估 PDF 庫嗎?

可以,許多 PDF 庫提供一個具有水印輸出的試用期供評估。您可以訪問該庫的官方網站以瞭解更多關於許可和定價選項的信息。

如何在我的 C# 項目中安裝 PDF 庫?

要在您的 C# 專案中安裝 PDF 庫,可以使用 NuGet 套件管理器。在套件管理器控制台中執行 Install-Package 命令或在 NuGet 套件管理器界面中搜索該庫。

Jacob Mellor, Team Iron 首席技術官
首席技術官

Jacob Mellor是Iron Software的首席技術官,也是開創C# PDF技術的前瞻性工程師。作為Iron Software核心代碼庫的原始開發者,他自公司成立以來就塑造了公司的產品架構,並與CEO Cameron Rimington將公司轉型為服務NASA、Tesla以及全球政府機構的50多人公司。

Jacob擁有曼徹斯特大學土木工程一級榮譽學士學位(1998年–2001年)。他於1999年在倫敦開立首家軟體公司,並於2005年建立了他的第一個.NET組件,專注於解決Microsoft生態系統中的複雜問題。

他的旗艦作品IronPDF和Iron Suite .NET程式庫全球已獲得超過3000萬次NuGet安裝,他的基礎代碼不斷在全球各地驅動開發者工具。擁有25年以上的商業經驗和41年的編碼專業知識,Jacob仍然專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我