List、IList、ArrayList 和 Dictionary

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()
        {
            // 使用 List
            List<int> list = new List<int> { 1, 2, 3 };
            listBox.Items.Add("List:");
            foreach (var item in list)
            {
                listBox.Items.Add(item);
            }

            // 使用 IList
            IList<string> ilist = new List<string> { "Alice", "Bob", "Charlie" };
            listBox.Items.Add("IList:");
            foreach (var item in ilist)
            {
                listBox.Items.Add(item);
            }

            // 使用 ArrayList
            ArrayList arrayList = new ArrayList { 1, "two", 3.0 };
            listBox.Items.Add("ArrayList:");
            foreach (var item in arrayList)
            {
                listBox.Items.Add(item);
            }

            // 使用 Dictionary
            Dictionary<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}");
            }
        }
    }
}

 结果如下:

用到哪,学到哪!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值