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}");
            }
        }
    }
}

 结果如下:

用到哪,学到哪!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/637045.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数字人系统OEM源码及赚钱方式详解!

当前&#xff0c;数字人直播的热度持续上涨&#xff0c;应用场景日益丰富。而随着数字人直播所蕴含的前景和潜力被不断挖掘一批又一批的创业者纷纷开始入局分羹。其中&#xff0c;数字人系统OEM源码模式作为最为常见的入局方式之一&#xff0c;更是备受瞩目。 所谓数字人系统O…

【个人经历分享】末流本科地信,毕业转码经验

本人24届末流本科&#xff0c;地理信息科学专业。 我们这个专业可以说是 “高不成&#xff0c;低不就”的专业&#xff0c;什么都学但都不精。考研我实在是卷不动同学历的人&#xff0c;我在大三的时候就开始考虑转码。 至于我为什么选择转码&#xff0c;选择了GIS开发&#xf…

hcip—VLAN实验

目录 实验拓扑&#xff1a; 实验目的&#xff1a; 实验思路&#xff1a; 实验步骤&#xff1a; 1.创建VLAN 2.将接口放进相应VLAN当中&#xff0c;并配置接口类型&#xff08;hybrid口配置撕tag表&#xff09; 3.配置路由器接口 4.配置DHCP服务 pc1 ping pc4的过程分析…

position: absolute对el-dialog的影响

当用到position: absolute,会使元素脱离文档流,从而对原始层级发生变化,导致蒙层无法消失.

dubbo复习: (5)和springboot集成时的标签路由

标签路由&#xff1a;服务提供者和服务消费者都可以指定标签。 只有服务提供者的标签和服务消费者的标签一致时&#xff0c;才会进行请求路由。 给服务提供者指定标签有两种方式&#xff0c;一种是通过在DubboService注解的tag属性来指定&#xff0c;如下示例 package cn.edu…

VScode C/C++环境安装配置

1. 编译器需要从如下网站下载&#xff1a; MinGW-w64 - for 32 and 64 bit Windows - Browse Files at SourceForge.net 2. 切换到file选项&#xff0c;下拉找到对应的文件版本直接下载&#xff1a; 3. 右键解压到当前文件夹如下&#xff1a; 4. 如图所示复制浏览器上的相应的…

LabVIEW2022安装教程指南【附安装包】

文章目录 前言一、安装指南1、软件包获取 二、安装步骤总结 前言 LabVIEW是一种程序开发环境&#xff0c;提供一种图形化编程方法&#xff0c;可可视化应用程序的各个方面&#xff0c;包括硬件配置、测量数据和调试&#xff0c;同时可以通过FPGA数学和分析选板中的NI浮点库链接…

XV4001KD汽车级应用的数字输出陀螺传感器

XV4001KD是一款专为汽车导航系统和远程信息处理而设计的数字输出陀螺传感器。采用SPI/I2C串行接口&#xff0c;具有高精度的16位的角速率输出和11位的温度输出功能&#xff0c;能够准确地测量车辆的运动状态和环境温度&#xff0c;为导航系统和信息处理提供可靠的数据支持。以及…

动态IP与静态IP有什么区别?如何选择?

动态IP和静态IP都是指网络设备&#xff08;如计算机、服务器、路由器等&#xff09;在互联网上分配的IP地址的类型。 一、什么是动态IP&#xff0c;什么是静态IP&#xff1f; 1、什么是动态IP&#xff1f; 动态IP是指由Internet服务提供商&#xff08;ISP&#xff09;动态分配…

C++的数据结构(十七):哈希表

哈希表&#xff0c;又称散列表&#xff0c;是一种根据关键码值&#xff08;Key value&#xff09;直接访问的数据结构。通过把关键码值映射到表中的位置&#xff0c;可以快速找到对应的数据&#xff0c;从而大大提高查找效率。这种映射关系是通过散列函数来实现的&#xff0c;散…

大语言模型本地部署与使用_ollama_open-webui

概述 本文主要记录如何使用ollama运行开源的大语言模型如llama3等&#xff0c;以及如何使用open-webui进行交互。 ollama支持MacOS、Linux、Windows等操作系统&#xff0c;这里主要以Linux和Windows为主&#xff0c;讲述如何在本地运行大语言模型。 一 安装ollama 1.1 Wind…

一张图看懂大模型性价比:能力、价格、并发量全面PK

最近&#xff0c;国内云厂商的大模型掀起一场降价风暴。火山引擎、阿里云、百度云等纷纷宣布降价&#xff0c;部分模型价格降幅据称高达99%&#xff0c;甚至还有些模型直接免费。 五花八门的降价话术&#xff0c;一眼望去遍地黄金。但事实真的如此吗&#xff1f;今天我们就拨开…

太阳诱电:顺应时代需求的新型电容器为何能在全球得到广泛应用(下)

随着汽车电动化和电子控制化的进展&#xff0c;车载计算机和电气部件也在逐渐向大功率化的方向发展。而构成这些车载设备电源电路的电子元器件也必须随之进行技术革新。太阳诱电集团携手全资子公司ELNA&#xff0c;开发并供应新型电容器“导电性高分子混合铝电解电容器”&#…

热爱无解 少年万丈光芒!首席艺人【彭禹锦】登陆第八季完美童模全球赛

2024年7月&#xff0c;一档由IPA模特委员会创办于2017年的王牌少儿模特大赛即将拉开全球总决赛的帷幕!作为家喻户晓的国民赛事——完美童模曾6季荣获CCTV央视新闻报道&#xff0c;以创意引领、美学引领、和兼具文化底蕴的赛事特色&#xff0c;收获了全球百万亲子家庭的喜爱。20…

工业镜头的参数、选型步骤

目录 一、如何选择合适的工业镜头 1. 工业镜头的基本参数 2. 选择工业镜头的步骤 3. 案例分析&#xff1a;如何选择合适的镜头 4. 远心镜头的设计目的 二、 介绍远心镜头 2.1 远心镜头的主要特性 2.2 远心镜头的类型 2.3 远心镜头的应用 2.4 远心镜头的工作原理 2.5 …

SOA半导体光放大器及其应用

---翻译自Michael Connelly于2015年发表的文章 1.简介 在过去的二十五年里&#xff0c;光纤通信网络的部署和容量迅速增长。这种增长得益于新光电技术的发展&#xff0c;这些技术可用于利用光纤的巨大带宽。如今&#xff0c;运行的系统比特率已超过 100 Gb/s。光技术是全球信…

Kubernetes的灵魂核心:kube-scheduler

Kubernetes&#xff08;简称K8s&#xff09;是一个开源的容器编排系统&#xff0c;用于自动化容器化应用程序的部署、扩展和管理。在Kubernetes集群中&#xff0c;kube-scheduler是一个至关重要的组件&#xff0c;它负责将Pod&#xff08;Kubernetes中的最小部署单元&#xff0…

谷歌推出TransformerFAM架构,以更低的消耗处理长序列文本

Transformer对大模型界的影响力不言而喻&#xff0c;ChatGPT、Sora、Stable Difusion等知名模型皆使用了该架构。 但有一个很明显的缺点&#xff0c;其注意力复杂度的二次方增长在处理书籍、PDF等超长文档时会显著增加算力负担。 虽然会通过滑动窗口注意力和稀疏注意力等技术…

win11安装docker运行Open-Webui 界面化展示 ollama大模型

1.OpenWeb UI运行需要docker 环境下载docker Get Started | Docker 2.需要命令提示符docker -v 查询是否安装成功&#xff1b; 查询docker详情docker version 3.github拉取open-webUi镜像Package open-webui GitHub 复制命令运行在命令提示符&#xff1b; 等待下载完成 4.到…

打造一个增强版Kimi:可以生成图片、PPT、PDF文档、数据分析等

Kimi虽然在国内AI大模型中表现不错&#xff0c;但是和ChatGPT还是差不少功能。现在有一个很简单的方法&#xff0c;把kimi功能增强&#xff0c;使用效果大大改善&#xff0c;比如生成图片&#xff1a; 具体方法如下&#xff1a; 打开coze网站&#xff1a;https://www.coze.cn/…