List
- 類型: 泛型類
- 命名空間:
System.Collections.Generic
- 作用:
List<T>
表示一個強類型的對象列表,可以通過索引訪問。提供了搜索、排序和操作列表的方法。 - 特點: 類型安全,性能較好,適用于需要強類型和高效操作的場景。
- 例子:
List<int> numbers = new List<int>(); numbers.Add(1); numbers.Add(2); numbers.Add(3);
IList
- 類型: 接口
- 命名空間:
System.Collections.Generic
- 作用:
IList<T>
表示可以通過索引單獨訪問的對象集合。它是所有泛型列表的基礎接口。 - 特點: 提供了抽象層,可以用于更靈活和可擴展的實現。
- 例子:
IList<int> numbers = new List<int>(); numbers.Add(1); numbers.Add(2); numbers.Add(3);
ArrayList
- 類型: 非泛型類
- 命名空間:
System.Collections
- 作用:
ArrayList
表示一個可以通過索引單獨訪問的對象集合。與List<T>
不同,它不是類型安全的,可以存儲任何類型的對象。 - 特點: 靈活但不類型安全,適用于需要存儲多種類型對象的場景。
- 例子:
ArrayList numbers = new ArrayList(); numbers.Add(1); numbers.Add("two"); numbers.Add(3.0);
Dictionary
- 類型: 泛型類
- 命名空間:
System.Collections.Generic
- 作用:
Dictionary<TKey, TValue>
表示一個鍵值對的集合。每個鍵必須是唯一的,提供了根據鍵快速查找值的功能。 - 特點: 類型安全,查找速度快,適用于需要鍵值對存儲的場景。
- 例子:
Dictionary<string, int> ages = new Dictionary<string, int>(); ages.Add("Alice", 30); ages.Add("Bob", 25); ages.Add("Charlie", 35);
在WPF中的實例
假設我們在WPF應用中使用這些集合來顯示數據,可以創建一個簡單的WPF應用來展示這些集合的用法。
XAML 文件 (MainWindow.xaml)
<Window x:Class="WpfApp.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="MainWindow" Height="350" Width="525"><Grid><ListBox Name="listBox" HorizontalAlignment="Left" Height="300" VerticalAlignment="Top" Width="200"/></Grid>
</Window>
代碼后置文件 (MainWindow.xaml.cs)
using System.Collections;
using System.Collections.Generic;
using System.Windows;namespace WpfApp
{public partial class MainWindow : Window{public MainWindow(){InitializeComponent();DisplayData();}private void DisplayData(){// 使用 ListList<int> list = new List<int> { 1, 2, 3 };listBox.Items.Add("List:");foreach (var item in list){listBox.Items.Add(item);}// 使用 IListIList<string> ilist = new List<string> { "Alice", "Bob", "Charlie" };listBox.Items.Add("IList:");foreach (var item in ilist){listBox.Items.Add(item);}// 使用 ArrayListArrayList arrayList = new ArrayList { 1, "two", 3.0 };listBox.Items.Add("ArrayList:");foreach (var item in arrayList){listBox.Items.Add(item);}// 使用 DictionaryDictionary<string, int> dictionary = new Dictionary<string, int>{{ "Apple", 1 },{ "Banana", 2 },{ "Cherry", 3 }};listBox.Items.Add("Dictionary:");foreach (var kvp in dictionary){listBox.Items.Add($"{kvp.Key}: {kvp.Value}");}}}
}
?結果如下:
用到哪,學到哪!!