导入
LINQ 基础
学习如何在现代 C# 中使用 LINQ 查询语法和方法语法高效地筛选、排序和处理集合。
...
LINQ 的概念视图
包含姓名、年龄和薪资数据的基本 Employee 类
1public class Employee 2{ 3 public string FullName { get; set; } 4 public int Age { get; set; } 5 public decimal Salary { get; set; } 6}
1namespace LinqQueries; 2 3public class Employee 4{ 5 public string FullName { get; set; } = string.Empty; 6 public int Age { get; set; } 7 public decimal Salary { get; set; } 8}
1using LinqQueries; 2 3var employees = new List<Employee> 4{ 5 new Employee() { FullName = "John Doe", Age = 32, Salary = 170000m }, 6 new Employee() { FullName = "Chris Patrick", Age = 24, Salary = 156000m }, 7 new Employee() { FullName = "Amanda Watson", Age = 25, Salary = 165000m }, 8 new Employee() { FullName = "Adam Smith", Age = 24, Salary = 120000m }, 9 new Employee() { FullName = "Kirk Marks", Age = 29, Salary = 210000m }, 10 new Employee() { FullName = "Bree Lang", Age = 25, Salary = 320000m } 11}; 12 13var filteredEmployees = new List<Employee>(); 14 15foreach (var employee in employees) 16{ 17 if (employee.Age <= 28 && employee.Salary >= 150000) 18 { 19 filteredEmployees.Add(employee); 20 } 21} 22 23filteredEmployees.Sort((x, y) => x.FullName.CompareTo(y.FullName)); 24 25foreach (var employee in filteredEmployees) 26{ 27 Console.WriteLine(employee.FullName); 28}
1using System.Linq; 2using LinqQueries; 3 4var employees = new List<Employee> 5{ 6 new Employee() { FullName = "John Doe", Age = 32, Salary = 170000m }, 7 new Employee() { FullName = "Chris Patrick", Age = 24, Salary = 156000m }, 8 new Employee() { FullName = "Amanda Watson", Age = 25, Salary = 165000m }, 9 new Employee() { FullName = "Adam Smith", Age = 24, Salary = 120000m }, 10 new Employee() { FullName = "Kirk Marks", Age = 29, Salary = 210000m }, 11 new Employee() { FullName = "Bree Lang", Age = 25, Salary = 320000m } 12}; 13 14var filteredEmployees = from employee in employees 15 where employee.Age <= 28 && employee.Salary >= 150000 16 orderby employee.FullName 17 select employee; 18 19foreach (var employee in filteredEmployees) 20{ 21 Console.WriteLine(employee.FullName); 22}
1using System.Linq; 2using LinqQueries; 3 4var employees = new List<Employee> 5{ 6 new Employee() { FullName = "John Doe", Age = 32, Salary = 170000m }, 7 new Employee() { FullName = "Chris Patrick", Age = 24, Salary = 156000m }, 8 new Employee() { FullName = "Amanda Watson", Age = 25, Salary = 165000m }, 9 new Employee() { FullName = "Adam Smith", Age = 24, Salary = 120000m }, 10 new Employee() { FullName = "Kirk Marks", Age = 29, Salary = 210000m }, 11 new Employee() { FullName = "Bree Lang", Age = 25, Salary = 320000m } 12}; 13 14var filteredEmployees = employees 15 .Where(x => x.Age <= 28 && x.Salary >= 150000) 16 .OrderBy(x => x.FullName); 17 18foreach (var employee in filteredEmployees) 19{ 20 Console.WriteLine(employee.FullName); 21}