ForEach用法
假设有一个List集合,如何遍历List中的每一个元素?
- 简单创建一个学生类
public class Student
{
public int ID;
public string Name;
public int Age;
}
- 一个班级有3个学生,即new三个学生对象储存在List中
static void Main(string[] args)
{
List<Student> students = new List<Student>();
students.Add(new Student() { ID = 1, Name = "张三", Age = 14 });
students.Add(new Student() { ID = 2, Name = "李四", Age = 15 });
students.Add(new Student() { ID = 3, Name = "王五", Age = 16 });
}
- 那么现在List集合中有3个对象,现在我要打印每个学生的姓名:
(1)普通方法:
foreach (var student in students)
{
Console.WriteLine(student.Name);
}
(2)进阶ForEach方法:
students.ForEach(p => { Console.WriteLine(p.Name); });
Select方法
如果我想把每个学生的姓名单独提取出来组成一个新的List
//声明一个新类
public class StudentName
{
public string Name;
}
- 普通方法
List<StudentName> studentNames = new List<StudentName>();
foreach (var student in students)
{
studentNames.Add(new StudentName() { Name = student.Name});
}
- 进阶Select方法
var studentNames = students.Select(p => new StudentName() { Name = p.Name }).ToList();
Where方法
如果我想筛选一个班级里年龄大于14岁的学生
- 普通方法
List<Student> stu = new List<Student>();
foreach (var student in students)
{
if(student.Age>14)
{
stu.Add(student);
}
}
- 进阶方法
var s = students.Where(p => p.Age > 14).ToList();
如果我有多个条件?
var s = students.Where(p => (p.Age > 14 && p.ID>2)).ToList();
源码及文档,VS2019打开:
蓝奏云