C# List (下面的练习很关键)

2024-08-23 07:44

本文主要是介绍C# List (下面的练习很关键),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

List的本质
           

List是一个C#为我们封装好的类,它的本质是一个可变类型的泛型数组,

List类帮助我们实现了很多方法,比如泛型数组的增删查改

申明


需要引用命名空间    using System.Collections.Generic


 List<int> list = new List<int>();


List<string> list2 = new List<string>();


List<bool> list3 = new List<bool>();

增删查改


List<string> list2 = new List<string>();

 List<string> listStr = new List<string>();
 listStr.Add("123");
 list2.AddRange(listStr);

 list.Insert(0, 999);
 Console.WriteLine(list[0]);


1.移除指定元素
            list.Remove(1);
2.移除指定位置的元素
            list.RemoveAt(0);
3.清空
            list.Clear();


1.得到指定位置的元素
            Console.WriteLine(list[0]);
2.查看元素是否存在
            if( list.Contains(1) )
            {
                Console.WriteLine("存在元素 1");
            }
3.正向查找元素位置    找到返回位置 找不到 返回-1
            int index = list.IndexOf(5);
            Console.WriteLine(index);
4.反向查找元素位置      找到返回位置 找不到 返回-1
            index = list.LastIndexOf(2);
            Console.WriteLine(index);


  Console.WriteLine(list[0]);
  list[0] = 99;
  Console.WriteLine(list[0]);


遍历

长度
            Console.WriteLine(list.Count);
容量   避免产生垃圾
            Console.WriteLine(list.Capacity);
          
  for (int i = 0; i < list.Count; i++)
 {
        Console.WriteLine(list[i]);
 }
           
foreach (int item in list)
  {
          Console.WriteLine(item);
  }


类在加载的时候 一个成员变量被声明了 没有new 那么如果在构造函数里,用这个成员里面的方法,会对着他在内存中存的默认值调用方法 如果是引用类型,那么对 null 调用方法会导致 NullReferenceException


abstract class Monster
{public static List<Monster> monsterList { get; set; } = new List<Monster>();public Monster(){monsterList.Add(this);}public abstract void Action();
}
class Boss :Monster
{public override void Action(){Console.WriteLine("Boss攻击");}
}
class Gablin :Monster
{public override  void Action(){Console.WriteLine("哥布林攻击");}
}class Program
{public   static void Main(){Gablin gablin = new Gablin();Gablin gablin1 = new Gablin();Boss boss = new Boss();Gablin gablin2 = new Gablin();for (int i = 0; i < Monster .monsterList.Count ; i++){Monster.monsterList[i].Action();}}}

这篇关于C# List (下面的练习很关键)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1098770

相关文章

C#基础之委托详解(Delegate)

《C#基础之委托详解(Delegate)》:本文主要介绍C#基础之委托(Delegate),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 委托定义2. 委托实例化3. 多播委托(Multicast Delegates)4. 委托的用途事件处理回调函数LINQ

在C#中调用Python代码的两种实现方式

《在C#中调用Python代码的两种实现方式》:本文主要介绍在C#中调用Python代码的两种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#调用python代码的方式1. 使用 Python.NET2. 使用外部进程调用 Python 脚本总结C#调

C#中的 StreamReader/StreamWriter 使用示例详解

《C#中的StreamReader/StreamWriter使用示例详解》在C#开发中,StreamReader和StreamWriter是处理文本文件的核心类,属于System.IO命名空间,本... 目录前言一、什么是 StreamReader 和 StreamWriter?1. 定义2. 特点3. 用

java streamfilter list 过滤的实现

《javastreamfilterlist过滤的实现》JavaStreamAPI中的filter方法是过滤List集合中元素的一个强大工具,可以轻松地根据自定义条件筛选出符合要求的元素,本文就来... 目录1. 创建一个示例List2. 使用Stream的filter方法进行过滤3. 自定义过滤条件1. 定

如何使用C#串口通讯实现数据的发送和接收

《如何使用C#串口通讯实现数据的发送和接收》本文详细介绍了如何使用C#实现基于串口通讯的数据发送和接收,通过SerialPort类,我们可以轻松实现串口通讯,并结合事件机制实现数据的传递和处理,感兴趣... 目录1. 概述2. 关键技术点2.1 SerialPort类2.2 异步接收数据2.3 数据解析2.

C#原型模式之如何通过克隆对象来优化创建过程

《C#原型模式之如何通过克隆对象来优化创建过程》原型模式是一种创建型设计模式,通过克隆现有对象来创建新对象,避免重复的创建成本和复杂的初始化过程,它适用于对象创建过程复杂、需要大量相似对象或避免重复初... 目录什么是原型模式?原型模式的工作原理C#中如何实现原型模式?1. 定义原型接口2. 实现原型接口3

如何通过Golang的container/list实现LRU缓存算法

《如何通过Golang的container/list实现LRU缓存算法》文章介绍了Go语言中container/list包实现的双向链表,并探讨了如何使用链表实现LRU缓存,LRU缓存通过维护一个双向... 目录力扣:146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2.

C# 委托中 Invoke/BeginInvoke/EndInvoke和DynamicInvoke 方法的区别和联系

《C#委托中Invoke/BeginInvoke/EndInvoke和DynamicInvoke方法的区别和联系》在C#中,委托(Delegate)提供了多种调用方式,包括Invoke、Begi... 目录前言一、 Invoke方法1. 定义2. 特点3. 示例代码二、 BeginInvoke 和 EndI

python中列表list切分的实现

《python中列表list切分的实现》列表是Python中最常用的数据结构之一,经常需要对列表进行切分操作,本文主要介绍了python中列表list切分的实现,文中通过示例代码介绍的非常详细,对大家... 目录一、列表切片的基本用法1.1 基本切片操作1.2 切片的负索引1.3 切片的省略二、列表切分的高

C#中的 Dictionary常用操作

《C#中的Dictionary常用操作》C#中的DictionaryTKey,TValue是用于存储键值对集合的泛型类,允许通过键快速检索值,并且具有唯一键、动态大小和无序集合的特性,常用操作包括添... 目录基本概念Dictionary的基本结构Dictionary的主要特性Dictionary的常用操作