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();
}
}
}
C#扩展方法 Where Any Count Signal SignalOrDefault First 等方法的使用的更多相关文章
- 《扩展和嵌入python解释器》1.4 模块方法表和初始化函数
<扩展和嵌入python解释器>1.4 模块方法表和初始化函数 1.4 模块方法表和初始化函数 下面,我演示如何从Python程序调用spam_system().首先,我们需要在’方法 ...
- str.方法的整理(字符串类型内置方法的具体使用)
<1>str.strip().str.lstrip()和str.rstrip() 1' str.strip()(主要方法) 方法:str.strip(self,chars) 作用:移除字符 ...
- 009-jdk1.8版本新特性一-展方法,Lambda表达式,函数式接口、方法引用构造引用
一.JDK1.8 名称:Spider(蜘蛛) 发布日期:2014-03-18 新特性: 1.1.扩展方法[接口的默认方法] Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 defaul ...
- set和push方法压入栈顶的值获取方法
向值栈里面放数据(储存的位置在root域里面) 向值栈放数据有多种方式,往往我们只用其中一种 1.set方法压栈 1)在Action中获取值栈对象,使用set()方法向值栈存放数据 ActionCon ...
- js将多个方法添加到window对象上的多种方法
方法一:(最简单也是最笨的方法) window.a = function(){}window.b = function(){}window.c = function(){} 方法二:(利用jq的ext ...
- 子类可以有跟父类中同名的方法,但是会重写父类中的方法,甚至是root class中的方法
/* 子类可以重写父类中的方法,甚至是root class中的方法,比如NSObeject 的new方法,但是后提示警告如下 Method is expected to return an insta ...
- struts2:数据校验,通过Action中的validate()方法实现校验(续:多业务方法时的不同验证处理)
前文:struts2:数据校验,通过Action中的validate()方法实现校验,图解 如果定义的Action中存在多个逻辑处理方法,且不同的处理逻辑可能需要不同的校验规则,在这种情况下,就需要通 ...
- 5、面向对象以及winform的简单运用(方法重载、隐藏、重写与虚方法)
方法的重载: 规定一个方法可以具有不同的实现,但方法的名称是相同的.如: //同样是Man这个方法 public int Man(int age,int name) { …… } //重载 publi ...
- JAVA本地方法详解,什么是JAVA本地方法?
一. 什么是Native Method 简单地讲,一个Native Method就是一个java调用非java代码的接口.一个Native Method是这样一个java的方法:该方法的实现由非j ...
- js调用后台方法(如果你能容忍执行的后台方法变成一个常量)
最近一直在做一个电话拨号的系统,系统不大,但是做的时间有点长了.其中用到了一个技术:js调用后台方法.解决这个问题花了不少时间,现如今仍然还有些不明白的地方,今天跟大家分享一下.真正明白的同学欢迎指正 ...
随机推荐
- 第九讲: MySQL为什么有时候会选错索引?
第九讲: MySQL为什么有时候会选错索引? 前面我们介绍过索引,你已经知道了在 MySQL 中一张表其实是可以支持多个索引的. 但是,你写 SQL 语句的时候,并没有主动指定使用哪个索引.也 ...
- 【Vue2】Router 路由
1.什么是单页面应用程序 单页面应用程序(英文名: Single Page Application)简称SPA, 顾名思义,指的是一个Web网站中只有唯一-的一-个HTML页面, 所有的功能与交互都在 ...
- 【MongoDB】Re04 副本集 ReplicationSet
MongoDB中的副本集(Replica Set)是一组维护相同数据集的mongod服务. 副本集可提供冗余和高 可用性,是所有生产部署的基础. 也可以说,副本集类似于有自动故障恢复功能的主从集群.通 ...
- 【SpringBoot】06 探索配置方式 Part2 占位符的使用
配置占位符? 随机数配置生成 RandomValuePropertySource 在配置文件中使用随机数 uid = ${random.value} uid = ${random.int} uid = ...
- 在单机条件下,MPI4PY与纯Python多进程代码来比较是否有性能优势???
如题: 最近在看MPI4PY的代码,但是发现这东西除了编写简洁外(少量代码实现复杂的多进程通信,包括单机和多机),好像也没有别的太多功能,当然MPI本身在多机通信广播.规约上做的很成熟,但是假设我们只 ...
- 9组-Beta冲刺-总结
一.基本情况 组长博客链接:9组-Beta冲刺-总结 现场答辩总结:本次答辩,我们演示了我们到Beta冲刺周结束时的成果展示,离目标还有一些距离,不过本次答辩完成了任务,总体来说还不错,希望下次最终答 ...
- tomcat发布两个项目报错webAppKey重复设置
两个项目的web.xml中都有一个日志监听器配置 <listener> <listener-class> org.springframework.web.util.Log4jC ...
- MFC连接Access2007数据库
// TODO: 在此添加额外的初始化代码 //初始化ADO环境 if (!AfxOleInit()) { AfxMessageBox(L"OLE初始化失败"); return F ...
- k8s中文文档
地址:http://docs.kubernetes.org.cn/122.html
- 《Programming from the Ground Up》阅读笔记:p103-p116
<Programming from the Ground Up>学习第7天,p103-p116总结,总计14页. 一.技术总结 1.读写文件 (1)linux.s linux.s: #fi ...