lambda和linq对比
相关:https://www.cnblogs.com/zhaopei/p/5746414.html
using System;
using System.Collections.Generic;
using System.Linq;
namespace LinqTest
{
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string Sex { get; set; }
public string Height { get; set; }
public string Weight { get; set; }
}
class Program
{
static List<Person> GetPersons()
{
var persons = new List<Person>
{
new Person{ Id=1,Name="henry1",Age=1,Sex="B",Height="11",Weight="111"},
new Person{ Id=2,Name="henry2",Age=2,Sex="B",Height="22",Weight="222"},
new Person{ Id=3,Name="henry3",Age=3,Sex="B",Height="33",Weight="333"},
new Person{ Id=4,Name="henry4",Age=4,Sex="B",Height="44",Weight="444"},
new Person{ Id=5,Name="henry5",Age=5,Sex="G",Height="55",Weight="555"},
new Person{ Id=6,Name="henry6",Age=6,Sex="G",Height="66",Weight="666"},
new Person{ Id=7,Name="henry7",Age=7,Sex="G",Height="77",Weight="777"},
new Person{ Id=8,Name="henry8",Age=8,Sex="G",Height="88",Weight="888"},
};
return persons;
}
static void Main(string[] args)
{
var persons = GetPersons();
//linq查询表达式
var test1 = from per in persons
where per.Age > 3
select per;
foreach (var item in test1)
{
//test1列表含有Person类的所有字段
Console.WriteLine("test1--"+item.Name + "--" + item.Age + "--" + item.Weight);
}
Console.WriteLine();
//点标记,lambda
var test3 = persons.Where(p => p.Age > 3).ToList();
foreach (var item in test3)
{
//test3列表含有Person类的所有字段
Console.WriteLine("test3--"+item.Name + "--" + item.Age + "--" + item.Weight);
}
Console.WriteLine();
//linq查询表达式
var test2 = from per in persons
where int.Parse(per.Weight) > 300
orderby per.Age
select new { per.Age, per.Name, per.Sex };
foreach (var item in test2)
{
//test2列表只有Age Name Sex三个字段
Console.WriteLine("test2--"+item.Name + "--" + item.Age + "--" + item.Sex);
}
Console.WriteLine();
//点标记(Lambda)
var test4 = persons.Where(e => int.Parse(e.Weight) > 300)
.OrderBy(e => e.Age)
.Select(p => new { p.Age, p.Name, p.Sex })//匿名类
.ToList();
foreach (var item in test4)
{
//test4列表只有Age Name Sex三个字段
Console.WriteLine("test4--"+item.Name + "--" + item.Age + "--" + item.Sex);
}
Console.WriteLine();
//很多情况下linq和lambda可以相互装转换,以上就是
//下面这种情况只能使用lambda
var test5 = persons
.Where((p,index) => p.Age > 3 && index%2==0)
.Select((p,index)=>new { p,index})
.Reverse()//反序
.ToList();
//test5.Distinct().ToList();//去重
//test5.Except(testn).ToList();//差集
//test5.Union(testn).ToList();//并集
//test5.Intersect(testn).ToList();//交集
foreach (var item in test5)
{
Console.WriteLine("test5--"+item.index + "--" + item.p.Id + "--" + item.p.Name + "--" + item.p.Weight);
}
Console.WriteLine();
Console.ReadLine();
}
}
}
lambda和linq对比相关推荐
- 第十二节:Lambda、linq、SQL的相爱相杀(1)
一. 谈情怀 Lambda.Linq.SQL伴随着我的开发一年又一年,但它们三者并没有此消彼长,各自占有这一定的比重,起着不可替代的作用. 相信我们最先接触的应该就是SQL了,凡是科班出身的人,大学 ...
- 简单测试lambda和linq查找的性能
在List泛型中查找一个值(唯一),究竟用哪种方法快点呢.for循环.foreach迭代器.Lambda表达式.Linq语句. 简单的写了一个程序测试一下.思路:构造一个有26843545个int元素 ...
- C#基础--Lambda和LINQ
C#基础–Lambda 和 LINQ 一.Lambda 的前世今生 在.NetFramewok的不同版本都有不同的样子:在.NetCore下也都是支持的: 1.1 .Netframework1.0/1 ...
- 《C# 语言入门详解(刘铁锰) - 学习笔记 - Lambda表达 / Linq查询》
Lambda表达 / LINQ查询 文章目录 Lambda表达 / LINQ查询 前言 一.Lambda表达式 二.LINQ查询 前言 Lambda表达式: 匿名方法.inline(内联)方法.(简化 ...
- Linq表达式和Lambda表达式用法对比
什么是Linq表达式?什么是Lambda表达式? 前一段时间用到这个只是,在网上也没找到比较简单明了的方法,今天就整理了一下相关知识,有空了再仔细研究研究 public Program() { Lis ...
- 第十四节:Lambda、linq、SQL的相爱相杀(3)
一. SQL 开篇 1. where用法 1 #region 封装EF调用SQL语句查询 2 public static List<T> ExecuteQuery<T>(str ...
- 第十三节:Lambda、linq、SQL的相爱相杀(2)
一. Linq开篇 1.Where用法 linq中where的用法与SQL中where的用法基本一致. 1 #region 01-where用法2 {3 //1. where用法4 //1.1 查询账 ...
- 一篇文章搞懂数据仓库:数据仓库架构-Lambda和Kappa对比
在介绍Lambda和Kappa架构之前,我们先回顾一下数据仓库的发展历程: 传送门-数据仓库发展历程 写在前面 咳,随着数据量的暴增和数据实时性要求越来越高,以及大数据技术的发展驱动企业不断升级迭代, ...
- 理解lambda在linq中的应用
LinQ是必须学好的一种查询语言,不得不佩服微软的贡献.现阶段要学好Linq必须了解lambda,关于lambda本身,朋友可以找些资料自己看看,我这只是讲下他的本质. lambda本质上是一个委托, ...
最新文章
- Flutter之Dart入门
- 计算机函数的实验报告,excel函数实验报告.doc
- 【转】设计模式 ( 十七) 状态模式State(对象行为型)
- java jinternalpanel_java swing中JPanel的布局问题
- 前端 JavaScript 中 JSON.stringify() 的基本用法
- (转)程序员如何快速准备面试中的算法
- H5做linux界面开发,如何利用HTML5打造桌面应用?
- cocos2d笔记 (3)cocos2d四个基本概念
- JAVA语言程序设计课后习题----第五单元解析(仅供参考)
- 在AD中安装元件和封装库
- 支付系统中,账户体系的设计与记账处理
- FlinkX配置文件解析
- css里的英文翻译,css常见英文翻译
- 测角误差估计算法matlab,Harris角点检测 及 Matlab实验
- 注解-Annotation
- 看了下李航的《统计学习方法》
- matlab程序作分形蕨,matlab学习第一天笔记
- linux 中.a和.so的区别
- IC芯片设计项目管理002:标准化流程的应用
- 自己做的Google地图下载工具(一)
热门文章
- Starting Tomcat v9.0 Server at localhost` has encountered a problem解决办法
- (下)苹果有开源,但又怎样呢?
- Vue(四)——使用脚手架(1)
- 保研日记--北京交通大学计算机学院
- VC++ .net 串口操作(简单的上位机串口操作)
- 远程工作一周,你的效率怎样?
- rm命令在删除文件时排除指定文件
- python关键字evaluate_python – Keras中的model.evaluate()返回了什么值?
- 东华大学Linux实验一
- JIRA扩展定制入门知识分享,附Github代码库