C#扩展方法 Where Any Count Signal SignalOrDefault First 等方法的使用
using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Runtime.ExceptionServices; using System.Text; using System.Threading; using System.Threading.Tasks; // 命名空间 namespace pro01 { // 类 internal class Program { // main 方法 static void Main(string[] args) { // LINQ 常用的扩展方法 IEnumerable<T> 扩展方法 // 数组 List 集合,Dictionary 字典,都是实现 IEnumerable 接口的扩展方法 // 初始化数据 List<Employee> list = new List<Employee>(); // 新建类型为 Employee 的集合数据 list.Add(new Employee {Id = 1,Name = "AAA",Age = 10,Gender = true ,Salary = 1000 }); list.Add(new Employee {Id = 2,Name = "BBB",Age = 11,Gender = false ,Salary = 2000 }); list.Add(new Employee { Id = 3,Name = "CCC",Age = 121,Gender = true ,Salary = 7000 }); list.Add(new Employee { Id = 3,Name = "CCC",Age = 121,Gender = true ,Salary = 3000 }); // 把 list 中 年龄等于 10 的筛选出来 IEnumerable<Employee> items1 = list.Where(item => item.Age == 10); Console.WriteLine(items1); foreach (Employee z in items1) { Console.WriteLine(z); } // Count 打印 list 的个数 int v = list.Count(); Console.WriteLine($"list 的个数 {v}"); // 筛选出id = 3 且 工资大于 5000 的数据 IEnumerable<Employee> items2 = list.Where(row => row.Id == 3 && row.Salary > 5000); foreach (Employee j in items2) { Console.WriteLine("================================"); Console.WriteLine(j); } // Any 判断集合中是否至少有一条数据满足条件 返回 true 或者 false Console.WriteLine("================Any============"); Console.WriteLine(list.Any(item => item.Id == 1)); // 集合是否包含 Id 为 1 的数据 true Console.WriteLine(list.Any(item => item.Id == 100)); // false // signal 获取一条数据 // Single 有且只有一条满足要求的数据 返回 true 没有数据或者满足多条的数据就会报错 //SignalOrDefault 最多只有一条满足要求的数据 // First 至少有一条 返回第一条数据 返回第一条满足条件的数据 // FirstOrDefault 返回第一条或者 默认值 // list.Single(); // 序列包含一个以上的元素 包含多个满足条件的数据 所以报错 List<Employee> list2 = new List<Employee>(); list2.Add(new Employee { Id = 111, Name = "AAA", Age = 10, Gender = true, Salary = 1000 }); //list2.Add(new Employee { Id = 222, Name = "AAA", Age = 10, Gender = true, Salary = 1000 }); //var fg = list2.Where(ele => ele.Id == 111).Single(); var fg = list2.Single(); Console.WriteLine(fg); IEnumerable<Employee> item4 = list.Where(row => row.Id > 2 && row.Salary > 2000); Console.WriteLine("==========Single============="); foreach(Employee i in item4) { Console.WriteLine(i); } // Employee e4 = item4.Single(); // 序列包含一个以上的元素 //Employee e1 = list.Single(col => col.Id == 1); //Console.WriteLine("Signal", e1); Console.ReadLine(); } } }