码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 非范型ArrayList和泛型List<T>


    ArrayList 是 C# 中的一个非泛型集合类,它属于 System.Collections 命名空间。它提供了动态数组的功能,允许你在运行时添加、删除和访问元素。然而,需要注意的是,ArrayList 并不是类型安全的,因为你可以向其中添加任何类型的对象,这可能会在后续处理元素时引发问题,比如类型转换错误。
    创建 ArrayList
    在 C# 中,你可以这样创建一个 ArrayList:
    csharp
    复制
    using System;
    using System.Collections;

    class Program
    {
    static void Main()
    {
    ArrayList myArrayList = new ArrayList();

        // 添加元素
        myArrayList.Add(1);
        myArrayList.Add("Hello");
        myArrayList.Add(3.14);
    
        // 遍历 ArrayList
        foreach(object item in myArrayList)
        {
            Console.WriteLine(item);
        }
    }
    

    }
    在这个例子中,ArrayList 包含了不同类型的对象(int、string 和 double)。这展示了 ArrayList 的灵活性,但也揭示了它类型不安全的缺点。
    访问元素
    你可以通过索引访问 ArrayList 中的元素,但是需要注意,访问时返回的类型是 object,因此如果你知道元素的确切类型,可能需要进行类型转换:
    csharp
    复制
    int firstItem = (int)myArrayList[0];
    string secondItem = (string)myArrayList[1];
    double thirdItem = (double)myArrayList[2];
    添加和删除元素
    除了 Add 方法,ArrayList 还提供了 AddRange 方法来一次性添加多个元素(这些元素应该来自实现了 ICollection 接口的集合),以及 Remove 和 RemoveAt 方法来删除元素。
    泛型集合 vs ArrayList
    尽管 ArrayList 提供了一种灵活的方式来存储对象集合,但在现代 C# 编程中,更推荐使用泛型集合(如 List),因为它们提供了类型安全,避免了类型转换的需要,并且通常提供了更好的性能。
    例如,使用 List 代替 ArrayList 存储整数:
    csharp
    复制
    using System;
    using System.Collections.Generic;

    class Program
    {
    static void Main()
    {
    List myList = new List();

        myList.Add(1);
        myList.Add(2);
        myList.Add(3);
    
        // 不需要类型转换
        foreach(int item in myList)
        {
            Console.WriteLine(item);
        }
    }
    

    }
    在这个例子中,List 明确指定了其存储的元素类型为 int,因此不需要进行类型转换,代码更简洁、更安全。

  • 相关阅读:
    FPGA 学习笔记:Vivado 2018.2 MicroBlaze 输出 Hello World
    从转载阿里开源项目 Egg.js 技术文档引发的“版权纠纷”,看宽松的 MIT 许可该如何用?
    CAPL学习之路-诊断函数
    SD中的VAE,你不能不懂
    聊聊数据库连接池 Druid
    奶牛摄影(春季每日一题 54)
    如何在不依靠工资收入的情况下赚到一万元?
    BPF:BCC工具 funccount 统计内核函数调用(内核函数、跟踪点USDT探针)认知
    picoCTF - Day 1 - Warm up
    vs2017打开工程提示若要解决此问题,请使用以下选择启动 Visual Studio 安装程序: 用于 x86 和 x64 的 Visual C++ MFC
  • 原文地址:https://blog.csdn.net/weixin_38566632/article/details/141003117
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号