C# List常用功能介绍

本文详细介绍了C#中的泛型类List<T>,包括其作为IList<T>接口的实现,以及Capacity、Count、Add、Contains、Remove、RemoveAll、Clear、Reverse、Sort等常用方法的使用示例,展示了如何在实际编程中灵活操作列表数据。

List介绍

List所属命名空间:System.Collections.Generic

public class List : IList, ICollection, IEnumerable, IList, ICollection, IEnumerable

List类是 ArrayList 类的泛型等效类。该类使用大小可按需动态增加的数组实现 IList 泛型接口。

泛型的好处: 它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到提高。

List常用方法、属性

1.Count
注:可以获取当前链表的元素个数

public class MyList : MonoBehaviour
{
    List<int> myList = new List<int>();
    void Start()
    {
        //打印出当前myList链表的长度
        print(myList.Count);
    }
}

2.Capacity
注:初始在链表中一个元素没有的时候真实长度是0在有了一个元素动态扩容时是4在添加第5个元素时链表动态扩容一次真实长度*2

public class MyList : MonoBehaviour
{
    //声明默认真实长度为零的链表
    List<int> myListOne = new List<int>();
    //声明一个真实长度为10的链表
    List<int> myListTow = new List<int>(5);
    void Start()
    {
        print("myListOne内没有元素时的真实长度" + myListOne.Capacity);
        print("myListTow内没有元素时的真实长度" + myListTow.Capacity);
        for (int i = 0; i < 10; i++)
        {
            myListOne.Add(i);
            print("myListOne链表真实长度:  " + myListOne.Capacity + "  myListOne链表元素个数:  " + myListOne.Count);
        }
        for (int i = 0; i < 10; i++)
        {
            myListTow.Add(i);
            print("myListTow链表真实长度:  " + myListTow.Capacity + "  myListTow链表元素个数:  " + myListTow.Count);
        }

        //在修改下面两个链表的真实长度在输出真实长度
        myListOne.Capacity = myListOne.Count;
        myListTow.Capacity = myListTow.Count;
        print("myListOne.Capacity修改后的真实长度:  " + myListOne.Capacity);
        print("myListTow.Capacity修改后的真实长度:  " + myListTow.Capacity);
    }
}

注意看控制台输出结果
在这里插入图片描述

3.Add
注:添加元素

public class MyList : MonoBehaviour
{
    //声明默认真实长度为零的链表
    List<int> myListOne = new List<int>();
    void Start()
    {
        for (int i = 0; i < 10; i++)
        {
            //添加元素
            myListOne.Add(i);
        }
    }
}

4.Contains
注:查找当前链表中是否存在某个元素


public class MyList : MonoBehaviour
{
    //声明默认真实长度为零的链表
    List<int> myListOne = new List<int>();
    void Start()
    {
        for (int i = 0; i < 10; i++)
        {
            //添加元素
            myListOne.Add(i);
        }
        if (myListOne.Contains(7))
        {
            print("myListOne中查找到了7");
        }
        else
        {
            print("myListOne中不存在7");
        }
    }
}

5.Remove
注:移除某个元素

public class MyList : MonoBehaviour
{
    //声明默认真实长度为零的链表
    List<int> myListOne = new List<int>();
    void Start()
    {
        for (int i = 0; i < 10; i++)
        {
            //添加元素
            myListOne.Add(i);
        }
        //第一次找7
        if (myListOne.Contains(7))
        {
            print("myListOne中查找到了7并移除7");
            //移除7
            myListOne.Remove(7);
        }
        else
        {
            print("myListOne中不存在7");
        }

        //输出当前链表中的元素
        foreach (var item in myListOne)
        {
            print(item);
        }

        //再次查找一遍
        if (myListOne.Contains(7))
        {
            print("myListOne中查找到了7并移除7");
            //移除7
            myListOne.Remove(7);
        }
        else
        {
            print("myListOne中不存在7");
        }
    }
}

6.RemoveAll
注:批量移除

public class MyList : MonoBehaviour
{
    List<int> myListOne = new List<int>();
    void Start()
    {
        for (int i = 0; i < 10; i++)
        {
            //添加元素
            myListOne.Add(i);
        }
        myListOne.RemoveAll((int a) =>
        {
            //删除奇数留下偶数
            if (a % 2 == 1)
            {
                return true;
            }
            else
            {
                return false;
            }
        });
        for (int i = 0; i < myListOne.Count; i++)
        {
            //输出删除后的链表元素
            print(myListOne[i]);
        }
    }
}

7.Clear
注:清空链表所有元素


public class MyList : MonoBehaviour
{
    List<int> myListOne = new List<int>();
    List<int> myListTow = new List<int>();
    void Start()
    {
        for (int i = 0; i < 10; i++)
        {
            //添加元素
            myListOne.Add(i);
        }
        //清空链表
        myListOne.Clear();
        //输出清空后的链表元素长度
        print(myListOne.Count);
    }
}

8.Reverse
注:反转链表元素,将第一位放到最后一位以此反转(不存在元素大小排序)

public class MyList : MonoBehaviour
{
    List<int> myListOne = new List<int>();
    List<string> myListTow = new List<string>();
    void Start()
    {
        for (int i = 0; i < 10; i++)
        {
            //添加元素
            myListOne.Add(i);
        }
        myListOne.Reverse();
        foreach (var item in myListOne)
        {
            print(item);
        }



        myListTow.Add("1");
        myListTow.Add("yi");
        myListTow.Add("一");
        myListTow.Reverse();
        foreach (var item in myListTow)
        {
            print(item);
        }
    }
}

9.Sort
注:排序(有三个重载,默认不传参数的是从小到大排列)

public class MyList : MonoBehaviour
{
    List<int> myListOne = new List<int>();
    void Start()
    {
        for (int i = 0; i < 10; i++)
        {
            //添加元素
            myListOne.Add(i);
        }
        myListOne.Reverse();
        myListOne.Sort();
        foreach (var item in myListOne)
        {
            print(item);
        }
    }
}
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值