跳至頁尾內容
.NET 幫助

C# 隨機整數(開發者使用方法)

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

如何使用 C# 隨機 Int 數

1.建立一個新的 C# 專案。 2.建構 Random 類的實例。 3.使用 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();
$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);
$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);
$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);
$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();
$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();
$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);
$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");
    }
}
$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");
    }
}
$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實例: ThreadLocalthreadLocalRandom = 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 核心程式碼庫的最初開發者,他自公司成立之初便參與塑造了其產品架構,並與執行長 Cameron Rimington 一起將其發展成為一家擁有 50 多名員工、服務於 NASA、特斯拉和全球政府機構的公司。

Jacob 於 1998 年至 2001 年在曼徹斯特大學獲得土木工程一級榮譽學士學位。 1999 年,他在倫敦創辦了自己的第一家軟體公司;2005 年,他創建了自己的第一個 .NET 元件。此後,他專注於解決微軟生態系統中的複雜問題。

他的旗艦產品 IronPDF 和 IronSuite .NET 庫在全球 NuGet 上的安裝量已超過 3000 萬次,其基礎程式碼持續為全球開發者工具提供支援。憑藉 25 年的商業經驗和 41 年的程式設計專長,Jacob 始終致力於推動企業級 C#、Java 和 Python PDF 技術的創新,同時指導下一代技術領導者。