.NET幫助 C# ArrayList(對於開發者的運行原理) Jacob Mellor 更新:2025年7月28日 下載 IronPDF NuGet 下載 DLL 下載 Windows Installer 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 ArrayList 類別是 .NET Framework 集合命名空間的一部分,設計用於存儲對象集合。 它是一個非泛型集合,意味著它可以保存任何數據類型的項目。 此功能使其非常靈活,但與泛型集合相比,類型安全性較低。 ArrayList 可以包含重複的元素,並允許動態調整大小,以增加或刪除有效值。 在本文中,我們將討論 ArrayList 的基本知識和 IronPDF程式庫功能。 ArrayList 的基本知識 ArrayList 本質上是一個非泛型集合,能夠存儲任何數據類型的多個元素,使其成為各種編程場景中的多用途選擇。 能夠在不受固定大小限制的情況下自由添加元素或刪除項目是其關鍵特點之一。 ArrayList 自動調整其大小以容納新元素,這一特性得益於其實現的 IList 接口。 這種動態調整大小對於需要在其生命週期中變化元素數量的應用程式來說至關重要。 當您實例化一個 ArrayList 時,即創建了一個可以保存任何對象值的集合,從整數和字串到複雜的自定義對象。 由於有 Add 方法這樣的工具,將元素添加到 ArrayList 變得簡單,該方法將對象值追加到集合的末尾,而 Insert 方法將新項目放置於指定索引處,根據需要移動現有元素以騰出空間。 這種靈活性使開發者可以更有效地管理集合,適應應用程式在發展過程中的需求。 與元素共處 將元素添加到 ArrayList 是簡單直觀的。 例如,考慮一種情況,您正在構建一個包含各種類型數據的集合。 通過 Add 方法,您可以將任意對象追加到您的 ArrayList 中,從字串到整數,甚至是其他集合。 ArrayList 的容量將按需自動增加,確保始終有足夠的空間容納新的物件元素。 這種自動調整大小相比傳統陣列具有顯著優勢,因為傳統陣列需手動調整大小或創建新陣列以容納更多元素。 ArrayList 還提供了在特定位置或 int 索引插入和刪除元素的方法。 Insert 方法允許您在指定位置添加元素,有效地使您可以在集合中的任何指定索引上精確放置新項目。 同樣,Remove 和 RemoveAt 方法有助於刪除項目,可以通過指定要刪除的對象或其在集合中的索引來達成。 對 ArrayList 内元素的這種細緻控制,使其成為管理動態數據的強大工具。 創建和添加元素 要開始使用 ArrayList,您首先需要創建它的一個實例。 然後,您可以使用 Add 方法將元素添加到 ArrayList 中,該方法將一個對象插入到 ArrayList 的末尾。 using System; using System.Collections; class Program { // The main entry point of the program public static void Main() { // Create a new ArrayList ArrayList myArrayList = new ArrayList(); // Add elements of different types myArrayList.Add("Hello"); myArrayList.Add(100); var item = "World"; myArrayList.Add(item); // Iterate through the ArrayList and print each element foreach (var obj in myArrayList) { Console.WriteLine(obj); } } } using System; using System.Collections; class Program { // The main entry point of the program public static void Main() { // Create a new ArrayList ArrayList myArrayList = new ArrayList(); // Add elements of different types myArrayList.Add("Hello"); myArrayList.Add(100); var item = "World"; myArrayList.Add(item); // Iterate through the ArrayList and print each element foreach (var obj in myArrayList) { Console.WriteLine(obj); } } } $vbLabelText $csharpLabel 此示例展示瞭如何創建一個新的 ArrayList 並向其添加不同類型的元素。 然後 foreach 循環遍歷 ArrayList,打印每個元素。 插入元素 要在指定索引處插入元素,使用 Insert 方法,注意這是基於零的索引系統。 // Insert element at index 1 myArrayList.Insert(1, "Inserted Item"); // Insert element at index 1 myArrayList.Insert(1, "Inserted Item"); $vbLabelText $csharpLabel 刪除元素 要刪除元素,Remove 和 RemoveAt 方法派上用場。 Remove 刪除第一個特定對象的出現,而 RemoveAt 刪除特定整數索引處的元素。 myArrayList.Remove("Hello"); // Removes the first occurrence of "Hello" myArrayList.RemoveAt(0); // Removes the element at index 0 myArrayList.Remove("Hello"); // Removes the first occurrence of "Hello" myArrayList.RemoveAt(0); // Removes the element at index 0 $vbLabelText $csharpLabel 示例:管理 ArrayList 在 C# 中創建使用 ArrayList 的高級示例,不僅展示添加或刪除元素等基本操作,還包括更複雜的操作如排序,搜尋以及將 ArrayList 轉換為其他數據結構。 將以下示例放置於 Program.cs 檔案中以運行它: using System; using System.Collections; using System.Linq; class AdvancedArrayListExample { static void Main(string[] args) { // Initialize an ArrayList with some elements ArrayList numbers = new ArrayList() { 5, 8, 1, 3, 2 }; // Adding elements numbers.Add(6); // Add an element to the end numbers.AddRange(new int[] { 7, 9, 0 }); // Add multiple elements from a specified collection. Console.WriteLine("Initial ArrayList:"); foreach (int number in numbers) { Console.Write(number + " "); } Console.WriteLine("\n"); // Removing elements numbers.Remove(1); // Remove the element 1 numbers.RemoveAt(0); // Remove the first element Console.WriteLine("After Removal:"); foreach (int number in numbers) { Console.Write(number + " "); } Console.WriteLine("\n"); // Sorting numbers.Sort(); // Sort the ArrayList Console.WriteLine("Sorted ArrayList:"); foreach (int number in numbers) { Console.Write(number + " "); } Console.WriteLine("\n"); // Searching int searchFor = 5; int index = numbers.IndexOf(searchFor); // Find the index of the element if (index != -1) { Console.WriteLine($"Element {searchFor} found at index {index}"); } else { Console.WriteLine($"Element {searchFor} not found."); } Console.WriteLine("\n"); // Converting ArrayList to Array int[] numbersArray = (int[])numbers.ToArray(typeof(int)); Console.WriteLine("Converted Array:"); foreach (int number in numbersArray) { Console.Write(number + " "); } Console.WriteLine("\n"); // Demonstrate LINQ with ArrayList (Requires System.Linq) var evenNumbers = numbers.Cast<int>().Where(n => n % 2 == 0).ToList(); // Assign values to evenNumbers from the filtered results. Console.WriteLine("Even Numbers:"); evenNumbers.ForEach(n => Console.Write(n + " ")); Console.WriteLine(); } } using System; using System.Collections; using System.Linq; class AdvancedArrayListExample { static void Main(string[] args) { // Initialize an ArrayList with some elements ArrayList numbers = new ArrayList() { 5, 8, 1, 3, 2 }; // Adding elements numbers.Add(6); // Add an element to the end numbers.AddRange(new int[] { 7, 9, 0 }); // Add multiple elements from a specified collection. Console.WriteLine("Initial ArrayList:"); foreach (int number in numbers) { Console.Write(number + " "); } Console.WriteLine("\n"); // Removing elements numbers.Remove(1); // Remove the element 1 numbers.RemoveAt(0); // Remove the first element Console.WriteLine("After Removal:"); foreach (int number in numbers) { Console.Write(number + " "); } Console.WriteLine("\n"); // Sorting numbers.Sort(); // Sort the ArrayList Console.WriteLine("Sorted ArrayList:"); foreach (int number in numbers) { Console.Write(number + " "); } Console.WriteLine("\n"); // Searching int searchFor = 5; int index = numbers.IndexOf(searchFor); // Find the index of the element if (index != -1) { Console.WriteLine($"Element {searchFor} found at index {index}"); } else { Console.WriteLine($"Element {searchFor} not found."); } Console.WriteLine("\n"); // Converting ArrayList to Array int[] numbersArray = (int[])numbers.ToArray(typeof(int)); Console.WriteLine("Converted Array:"); foreach (int number in numbersArray) { Console.Write(number + " "); } Console.WriteLine("\n"); // Demonstrate LINQ with ArrayList (Requires System.Linq) var evenNumbers = numbers.Cast<int>().Where(n => n % 2 == 0).ToList(); // Assign values to evenNumbers from the filtered results. Console.WriteLine("Even Numbers:"); evenNumbers.ForEach(n => Console.Write(n + " ")); Console.WriteLine(); } } $vbLabelText $csharpLabel 此代碼片段演示了如何: 初始化一個具有一組元素的 ArrayList。 向 ArrayList 添加單個與多個元素。 通過值和索引刪除元素。 排序 ArrayList 以對元素進行排序。 搜索元素並找到其索引。 將 ArrayList 轉換為標準數組。 使用 LINQ 和 ArrayList 過濾出偶數,展示如何將非泛型集合與 LINQ 的強大查詢功能結合起來。 IronPDF 介紹:C# PDF程式庫 IronPDF 是一個功能強大的 C# 程式庫,簡化了 PDF 生成的複雜過程,提供了包括從HTML生成PDF、添加文字圖像、文件安全等在内的多樣功能。 將 IronPDF 與 ArrayList 整合 讓我們寫一個簡單的 C# 程式,創建一個 ArrayList 項目,然後使用 IronPDF 生成一個列出這些項的PDF文檔。 using IronPdf; using System; using System.Collections; class PdfCode { static void Main(string[] args) { // Set your IronPDF license key here IronPdf.License.LicenseKey = "Your_License_Key"; // Create a new ArrayList and add some items ArrayList itemList = new ArrayList(); itemList.Add("Apple"); itemList.Add("Banana"); itemList.Add("Cherry"); itemList.Add("Date"); // Initialize a new PDF document var Renderer = new ChromePdfRenderer(); // Create an HTML string to hold our content string htmlContent = "<h1>Items List</h1><ul>"; // Iterate over each item in the ArrayList and add it to the HTML string foreach (var item in itemList) { htmlContent += $"<li>{item}</li>"; } htmlContent += "</ul>"; // Convert the HTML string to a PDF document var PDF = Renderer.RenderHtmlAsPdf(htmlContent); // Save the PDF to a file PDF.SaveAs("ItemList.pdf"); Console.WriteLine("PDF file 'ItemList.pdf' has been generated."); } } using IronPdf; using System; using System.Collections; class PdfCode { static void Main(string[] args) { // Set your IronPDF license key here IronPdf.License.LicenseKey = "Your_License_Key"; // Create a new ArrayList and add some items ArrayList itemList = new ArrayList(); itemList.Add("Apple"); itemList.Add("Banana"); itemList.Add("Cherry"); itemList.Add("Date"); // Initialize a new PDF document var Renderer = new ChromePdfRenderer(); // Create an HTML string to hold our content string htmlContent = "<h1>Items List</h1><ul>"; // Iterate over each item in the ArrayList and add it to the HTML string foreach (var item in itemList) { htmlContent += $"<li>{item}</li>"; } htmlContent += "</ul>"; // Convert the HTML string to a PDF document var PDF = Renderer.RenderHtmlAsPdf(htmlContent); // Save the PDF to a file PDF.SaveAs("ItemList.pdf"); Console.WriteLine("PDF file 'ItemList.pdf' has been generated."); } } $vbLabelText $csharpLabel 在此示例中,我們首先創建名為 itemList 的 ArrayList,並使用多個字符串項目填充它。 接下來,我們初始化 IronPDF 的 ChromePdfRenderer 類的新實例,將用來將 HTML 內容轉換為 PDF 文件。 輸出 以下是 IronPDF 生成的輸出 PDF : 結論 ArrayList 是 C# 提供的強大集合,用於存儲對象列表。 其動態調整大小和存儲任何類型的元素的能力,使其對於多種應用程式來說都非常靈活。 然而,為了類型安全性和更好性能,推薦使用泛型集合。 實驗各種 ArrayList 方法將有助於您理解其用法和如何將其適用於您的應用程式。 此外,對於有意在 C# 功能擴展到 PDF 操作的人,IronPDF 提供.NET 中 PDF 功能的免費試用,以探索其特性。 授權牌照從 $799 開始,為在 .NET 應用程式中整合 PDF 功能提供綜合解決方案。 常見問題解答 如何在 C# 中將 ArrayList 轉換為 PDF? 您可以使用 IronPDF 從 ArrayList 中生成 PDF。在 ArrayList 上進行迭代,以將內容編輯為適合 PDF 生成的格式,然後使用 IronPDF 的方法創建和保存 PDF。 使用 IronPDF 與 ArrayLists 有何好處? IronPDF 允許開發人員輕鬆地將存儲在 ArrayLists 中的數據轉換為 PDF 文件。這對於創建報告或匯出項目列表非常有用,且僅需最少的代碼和最高的效率。 能否向從 ArrayList 生成的 PDF 添加文本和圖像? 可以,使用 IronPDF 您可以自訂 PDF,通過在 ArrayList 中對項目進行迭代來添加文本、圖像和其他內容。 是否可以為在 C# 中從 ArrayList 生成的 PDF 提供安全性? IronPDF 提供功能來保護您的 PDF 文件。您可以設置密碼和權限來限制對 ArrayList 中生成的 PDFs 的訪問和編輯。 當與 PDF 庫集成時,動態調整大小如何使 ArrayList 受益? ArrayList 的動態調整大小確保您可以根據需要添加或刪除元素,而無需擔心其容量。這種靈活性在使用諸如 IronPDF 等庫準備數據生成PDF 時非常有益。 使用 IronPDF 對於 C# 開發人員有什麼優勢? IronPDF 為 C# 開發人員提供了一個強大的工具集,用於生成和操作 PDF 文件。它支持多種功能,如 HTML 到 PDF 的轉換、添加註釋和合併多個 PDF,這使其成為 .NET 應用程序的一個重要庫。 如何在創建 PDF 時處理 ArrayList 中的不同數據類型? 由於 ArrayList 可以存儲任何數據類型,您可以使用 IronPDF 格式化和轉換這些不同的數據類型為一致的 PDF 文件,通過迭代 ArrayList 並應用必要的轉換。 在使用 IronPDF 與 ArrayLists 時有哪些故障排除提示? 確保在轉換為 PDF 之前的 ArrayList 中的數據格式正確。檢查空值和不兼容的數據類型,並使用 IronPDF 調試工具識別和解決在 PDF 生成過程中出現的任何問題。 Jacob Mellor 立即與工程團隊聊天 首席技術官 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技術的創新,同時指導下一代技術領導者。 相關文章 更新2026年2月20日 銜接 CLI 簡化與 .NET : 使用 Curl DotNet 與 IronPDF for .NET Jacob Mellor 藉由 CurlDotNet 彌補了這方面的不足,CurlDotNet 是為了讓 .NET 生態系統能熟悉 cURL 而建立的函式庫。 閱讀更多 更新2025年12月20日 RandomNumberGenerator C# 使用RandomNumberGenerator C#類可以幫助將您的PDF生成和編輯項目提升至新水準 閱讀更多 更新2025年12月20日 C#字符串等於(它如何對開發者起作用) 當結合使用強大的PDF庫IronPDF時,開關模式匹配可以讓您構建更智能、更清晰的邏輯來進行文檔處理 閱讀更多 Math.Round C#(對於開發者的運行原理)C# Linter(對於開發者的運...
更新2026年2月20日 銜接 CLI 簡化與 .NET : 使用 Curl DotNet 與 IronPDF for .NET Jacob Mellor 藉由 CurlDotNet 彌補了這方面的不足,CurlDotNet 是為了讓 .NET 生態系統能熟悉 cURL 而建立的函式庫。 閱讀更多