c# 学习笔记 - 集合(List)

文章目录

    • 1.概论
      • [1.1 List 特性](#1.1 List 特性)
      • [1.2 .NET API](#1.2 .NET API)
    • [2. 基本使用](#2. 基本使用)
      • [2.1 样例](#2.1 样例)
    • [3. 添加类操作](#3. 添加类操作)
      • [3.1 Insert()](#3.1 Insert())
    • [4. 删除类操作](#4. 删除类操作)
      • [4.1 Remove()](#4.1 Remove())
      • [4.2 RemoveAt()](#4.2 RemoveAt())
    • [5. 查找类操作](#5. 查找类操作)
    • [6. 排序类操作](#6. 排序类操作)
      • [6.1 Sort(Comparsion<T>)](#6.1 Sort(Comparsion))
    • [7. 其他类操作](#7. 其他类操作)

1.概论

1.1 List 特性

  1. 可通过索引访问的强类型列表,可以对列表进行搜索、排序和相关操作

1.2 .NET API

**  API介绍**

.NET API参考

2. 基本使用

2.1 样例

csharp 复制代码
class Test{
    static void print(List<int> list) {
        for(int i = 0; i < list.Count; i ++) { // Count获取实际存储元素个数
            Console.WriteLine(list[i]); // 0 1 2 -- 读取操作
        }
    }

    static void Main(){
        List<int> list = new List<int>(3); // 集合
        for(int i = 0; i < list.Capacity; i++ ) list.Add(i); // Capacity 集合最大存储量, Add()元素添加
        print(list);
    }
}

3. 添加类操作

3.1 Insert()

csharp 复制代码
public void Insert (int index, T item);
1. 在指定索引 index 前插入元素 item

4. 删除类操作

4.1 Remove()

csharp 复制代码
public bool Remove (T item);
1. 删除List集合当中第一次出现的item元素
2. 成功删除返回true,否则返回false

4.2 RemoveAt()

csharp 复制代码
public void RemoveAt (int index);
1. 删除指定索引位置的元素(索引必须合法,否则报错)

5. 查找类操作

6. 排序类操作

6.1 Sort(Comparsion)

csharp 复制代码
public void Sort (Comparison<T> comparison);
1. 按照指定的Comparison<T>, 对整个List<T>元素进行排序
2. public delegate int Comparison<in T>(T x, T y); Comparison是一个委托类型, 排序时只需要建立对应的比较	
   方法即可, 并且对于只需要使用一次的排序方法可以直接使用匿名类型方式书写.
csharp 复制代码
namespace DelegateAppl {
    class TestDelegate {
        public static int Comparsion(int x, int y){
            return x < y ? -1 : 1; // 从小到大排序
        }

        static void Main(){
            List<int> list = new List<int>(10);
            for(int i = 5; i < 5 + 10; i ++ ) list.Add(i % 10); // 5 6 ...9 0 1 2 3 4

            list.Sort(Comparsion); // 实现对应委托类型完成比较
            for(int i = 0; i < list.Count; i++) 
                Console.Write(list[i] + " "); // 0 ~ 9
            Console.WriteLine();

            list.Sort(delegate (int x, int y) { // 匿名类型方式完成
                return x < y ? 1 : -1; // 从大到小排序
            });
            for(int i = 0; i < list.Count; i++) 
                Console.Write(list[i] + " "); // 9 ~ 0
        }
        
    }
}

7. 其他类操作

相关推荐
落寞的星星7 小时前
这个对象就包含了已经转换好的DFA和各种词法分析器运转所需要的参数。下一步,我们就可以用ScannerInfo对象创建出Scanner对象,请看下面的代码:
开发语言·c#
聪慧的水蜜桃10 小时前
【YFIOs】用C#开发硬件之设备上云
开发语言·c#
星幻元宇VR12 小时前
公共安全实训展厅设备【人防知识学习系统】
科技·学习·安全
心中有国也有家15 小时前
AtomGit Flutter 鸿蒙客户端:情绪日记的时间线实现
学习·flutter·华为·harmonyos
hixiong12315 小时前
TensorRT转换工具分享
人工智能·计算机视觉·ai·c#
百里香酚兰16 小时前
【python学习笔记】pyttsx3库疑似只播报一次语音
笔记·python·学习
恣逍信点16 小时前
《凌微经》助读:本体论根基——“无之自悖”与“形性一体”
人工智能·科技·学习·程序人生·生活·交友·哲学
莫生灬灬17 小时前
DY联系人聊天Web面板支持获取联系人/聊天记录/发送消息
前端·chrome·websocket·c#
chh56318 小时前
C++--string
java·开发语言·网络·c++·学习
chnyi6_ya18 小时前
论文阅读笔记:VideoWeaver — 面向智能体长视频生成的技能评估与进化
论文阅读·笔记·音视频