zoukankan      html  css  js  c++  java
  • C#-----集合List<T>的常用方法

        雇员实体类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace TestList
    {
        /// <summary>
        /// 雇员类
        /// </summary>
        public class Employee
        {
            /// <summary>
            /// 雇员姓名
            /// </summary>
            public string EmpName { get; set; }
            /// <summary>
            /// 雇员性别
            /// </summary>
            public string EmpSex { get; set; }
            /// <summary>
            /// 雇员年龄
            /// </summary>
            public int EmpAge { get; set; }
            /// <summary>
            /// 雇员部门
            /// </summary>
            public string DeptName { get; set; }
            /// <summary>
            /// 构造函数
            /// </summary>
            /// <param name="empName"></param>
            /// <param name="empSex"></param>
            /// <param name="empAge"></param>
            /// <param name="deptName"></param>
            public Employee(string empName, string empSex, int empAge, string deptName)
            {
                EmpName = empName;
                EmpSex = empSex;
                EmpAge = empAge;
                DeptName = deptName;
            }
    
            public override string ToString()
            {
                return "Employee[EmpName=" + EmpName + ",EmpSex=" + EmpSex + ",EmpAge=" + EmpAge + ",DeptName=" + DeptName + "]";
            }
        }
    }

       1.ForEach(Action<T> action)

          对集合的每个元素执行指定操作

    List<Employee> listEmps = new List<Employee>();
                //ForEach(Action<T> action) 对 System.Collections.Generic.List`1 的每个元素执行指定操作
                employees.ForEach(p =>
                {
                    if (p.EmpSex.Equals(""))
                    {
                        listEmps.Add(p);
                    }
                });

       2.FindAll(Predicate<T> match)

          检索与指定谓词定义的条件匹配的所有元素

     List<Employee> empList = employees.FindAll(p=>(p.EmpAge>22));
                if (empList.Count>0)
                {
                    foreach (Employee emp in empList)
                    {
                        Console.WriteLine(emp.ToString());
                    }
                }

       3.Where

         基于谓词筛选值序列

    List<Employee> listEmployee = employees.Where(p => (p.EmpName.Contains(""))).ToList();
                if (listEmployee.Count>0)
                {
                    foreach (Employee emp in listEmployee)
                    {
                        Console.WriteLine(emp.ToString());
                    }
                }

       4.RemoveAll(Predicate<T> match) 

         移除与指定的谓词所定义的条件相匹配的所有元素

    employees.RemoveAll(p => (p.EmpAge >= 25));
                if (employees.Count>0)
                {
                    foreach (Employee emp in employees)
                    {
                        Console.WriteLine(emp.ToString());
                    }
                }

       5.RemoveAt(int index) 

         移除指定索引处的元素

    if (employees.Count>0)
                {
                    for (int i=0;i<employees.Count;i++)
                    {
                        Employee employee = employees[i];
                        if (employee.DeptName.Equals("市场部"))
                        {
                            employees.RemoveAt(i);
                        }
                    }
                    if (employees.Count > 0)
                    {
                        foreach (Employee emp in employees)
                        {
                            Console.WriteLine(emp.ToString());
                        }
                    }
                }

         完整Demo

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace TestList
    {
        class Program
        {
            static void Main(string[] args)
            {
                List<Employee> employees = new List<Employee>();
                Employee empOne = new Employee("王晶", "", 20, "市场部");
                Employee empTwo = new Employee("陈浩民", "", 24, "技术部");
                Employee empThree = new Employee("王诗玲", "", 25, "市场部");
                Employee empFour = new Employee("陈绍聪", "", 30, "技术部");
                Employee empFive = new Employee("张倩", "", 19, "行政部");
                employees.Add(empOne);
                employees.Add(empTwo);
                employees.Add(empThree);
                employees.Add(empFour);
                employees.Add(empFive);
    
                List<Employee> listEmps = new List<Employee>();
                //ForEach(Action<T> action) 对 System.Collections.Generic.List`1 的每个元素执行指定操作
                employees.ForEach(p =>
                {
                    if (p.EmpSex.Equals(""))
                    {
                        listEmps.Add(p);
                    }
                });
                if (listEmps.Count>0)
                {
                    foreach (Employee emp in listEmps)
                    {
                        Console.WriteLine(emp.ToString());
                    }
                }
                Console.WriteLine("=========================");
    
                //Where 基于谓词筛选值序列
                List<Employee> listEmployee = employees.Where(p => (p.EmpName.Contains(""))).ToList();
                if (listEmployee.Count>0)
                {
                    foreach (Employee emp in listEmployee)
                    {
                        Console.WriteLine(emp.ToString());
                    }
                }
                Console.WriteLine("=========================");
    
                //FindAll(Predicate<T> match) 检索与指定谓词定义的条件匹配的所有元素
                List<Employee> empList = employees.FindAll(p=>(p.EmpAge>22));
                if (empList.Count>0)
                {
                    foreach (Employee emp in empList)
                    {
                        Console.WriteLine(emp.ToString());
                    }
                }
                Console.WriteLine("=========================");
    
                //RemoveAll(Predicate<T> match) 移除与指定的谓词所定义的条件相匹配的所有元素
                employees.RemoveAll(p => (p.EmpAge >= 25));
                if (employees.Count>0)
                {
                    foreach (Employee emp in employees)
                    {
                        Console.WriteLine(emp.ToString());
                    }
                }
                Console.WriteLine("=========================");
    
                //RemoveAt(int index) 移除指定索引处的元素
                if (employees.Count>0)
                {
                    for (int i=0;i<employees.Count;i++)
                    {
                        Employee employee = employees[i];
                        if (employee.DeptName.Equals("市场部"))
                        {
                            employees.RemoveAt(i);
                        }
                    }
                    if (employees.Count > 0)
                    {
                        foreach (Employee emp in employees)
                        {
                            Console.WriteLine(emp.ToString());
                        }
                    }
                }
    
                Console.ReadLine();
            }
        }
    }
  • 相关阅读:
    subtitleedit
    NHibernate.Mapping1.1.csgen 模板
    js jqueryhotkeys
    c#.net将对象序列化,反序列化json
    ruby document
    sqlserver2008新数据类型
    [转]杂记
    UVA 532 Dungeon Master
    UVA 10557 XYZZY
    UVA 10129 Play on Words
  • 原文地址:https://www.cnblogs.com/fengfuwanliu/p/10577311.html
Copyright © 2011-2022 走看看