Bootstrap

list(概念和简单应用)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _01_list
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // list 和 ArrayList 内置类  是一个数组的封装类

            //List 不存在装箱拆箱
            //list<存储的数据类型> 这中动态书写的形式叫做泛型
            List<int> nums = new List<int>() { 1, 2, 3, 4, 5 };
            List <int> nums1 = new List <int>(new int[] { 1, 2, 3, 4 });

            // 获取数组的长度
            Console.WriteLine(nums.Count);
            // 获取存储数据的容量
            Console.WriteLine(nums.Capacity);
            // list 最小的内存空间是四
            // 向数组中添加元素
            nums.Add(110);// 添加一个元素
            nums.AddRange(new int[] { 111, 110, 113 });// 添加一个范围的元素
            // 向数组中插入元素
            nums.Insert(2, 100);// 在索引为2的位置插入一个元素
            nums.InsertRange (2, new int[] { 200, 110, 202 });// 在索引为2的位置插入一个范围的元素
                                                              // 从数组中删除元素
                                                              //nums.Remove(100);// 删除第一个100的元素

            //nums.RemoveAt(2);// 删除索引为2的元素
            //nums.RemoveRange(2, 2);// 删除索引为2的元素开始删除指定个数的元素
            //nums.RemoveAll((int num ) => 
            //{
            //    // Remove 的参数是一个回调函数
            //    // 回调函数中需要接受一个参数 参数是数组中的每个元素
            //    // 回调函数的返回值是一个 bool 值
            //    // 如果返回 true 则表示删除当前元素
            //    // 如果返回 false 则表示保留当前元素
            //    return num == 110; 


            //});
            // 判断数组中是否包含元素
            Console.WriteLine(nums.Contains(110));

            // 获取元素位置
            Console.WriteLine(nums.IndexOf(110));// 获取元素第一次出现的位置
            Console.WriteLine(nums.LastIndexOf(110));// 获取元素最后一次出现的位置
            // 查找数组中的第一次出现的元素 并返回元素
             int num = nums.Find((int item ) => 
             {
                 // item 表示数组中的元素
                 return item == 110;
             
             });
            // 查找数组中第一次出现的元素的索引
            int index = nums.FindIndex((int item) =>
            {
                return item == 110;
            });
            // 查找数组中最后一次出现的元素 并返回元素
            int num1 = nums.FindLast((int item) =>
            {
                return item == 110;
            });

            // 查找数组中最后一次出现的元素的索引
            int index1 = nums.FindLastIndex((int item) =>
            {
                return item == 110;
            });
            // 获取数组中所有满足条件的元素 放到一个数组中并返回
           List <int> list = nums.FindAll((int item) => { return item == 110; });
            Console.WriteLine("=========================");
            for (int  i = 0;  i < list.Count;  i++)
            {
                Console.WriteLine(list[i]);
            }
             反转数组的方法
            //nums.Reverse();
             数组排序的方法
            //nums.Sort();// 将数组中的元素进行升序排序
            nums.Sort ((int item1, int item2) =>
            {
                // item1 item2 表示数组中的元素
                // 如果需要 item1 在 item2 前面则返回 -1 值只要时是负数即可
                // 如果需要 item1 在 item2 后面则返回 1  值只要时是正数即可
                // 如果不需要排序则返回 0
                // return item2 - item1 一定是降序 return item1 - item2 一定是升序
                //if ( item1 > item2)
                //{
                //    return 1;

                //}
                //else if (item1 < item2)
                //{
                //    return -1;
                //}
                //else
                //{
                //    return 0;
                //}
                return item2 - item1;
            });
           // nums.Clear(); // 清空数组
            
            
            Console.WriteLine("-----------------------------------------");
            // 循环遍历数组
            for (int i = 0; i < nums.Count; i++)
            {
                Console.WriteLine(nums[i]);
            }
            Console.ReadLine();
        }
    }
}

应用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _02_案例
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Person p1 = new Person("张三", 20, "男");
            Person p2 = new Person("李四", 18, "男");
            Person p3 = new Person("王五", 15, "男");
            Person p4 = new Person("小帅", 25, "男");
            Person p5 = new Person("小美", 30, "女");
            Person p6 = new Person("小红", 16, "女");
            Person p7 = new Person("小兰", 17, "男");
            Person p8= new Person(" 小绿", 17, "女");
            Person p9 = new Person("小紫", 33, "女");
            Person p10 = new Person("小橙", 22, "女");
            List<Person> list = new List<Person>() { p1, p3, p4, p5, p6, p7, p8, p9, p10 };
           List<Person> girs = list.FindAll((Person item) =>
            {
                //item  是数组中的每一个元素
                return item.Gender == "女" && item.Age > 18 && item.Age <=24;
            });
            for (int i = 0; i < girs.Count; i++)
            {
                Console.WriteLine(girs[i].Name);
            }
            Person gir1 = list.Find((Person item) =>
            {
              return   item.Gender == "女";
            });

            Console.WriteLine("第一个女孩的名字是:"+ gir1.Name);
            Console.ReadLine();
        }
    }
    class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public string Gender { get; set; }
        public int Id { get; }
        static Random random = new Random();
        public Person() { }
        public Person(string name, int age, string gender)
        {
            Name = name;
            Age = age;
            Gender = gender;
            Id = random.Next();
        }
        
    }
}
 

;