using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Lamda
{
class Program
{
static void Main(string[] args)
{
#region 测试数据
List<Student> list = new List<Student>()
{
new Student(){ ID=, Name="jack", Age=},
new Student(){ ID=, Name="mary", Age=},
new Student(){ ID=, Name="joe", Age=},
new Student(){ ID=, Name="joe", Age=},
new Student(){ ID=, Name="Aaron", Age=},
new Student(){ ID=, Name="Aaron", Age=},
};
var a = list.Where((x, i) => list.FindIndex(z => z.ID == x.ID) == i);
#endregion
//1、获取list实体某一字段最大值
var maxvalue = list.Max(p => p.ID);//4
//2、获取list实体某一字段最小值
var minvalue = list.Min(p => p.ID);//1
//3、获取list实体某一字段总和的平均值
var sumvalue = list.Sum(p => p.ID);//10
//4、获取list实体某一字段总和的平均值
var village = list.Average(p => p.ID);//2.5
//5、判断list实体字段是否包含值
var Iscon = list.Where(p => p.Name == "jack" && p.Age == ).Any();//false //是否存在名字为jack,年龄在2岁的人
//6、list实体转成DICTIONARY 键值对
var dic = list.Distinct().ToDictionary(p => p.ID, p => p.Name);
//7、按照某一字段进行分组并获取对应字段的值
var group = list.GroupBy(p => p.Name).Select(p =>p.Key).ToList();
//7.1根据某一个字段的值去重
var group2 =list.GroupBy(p => p.Name).Select(p =>p.First()).ToList();
           //8、根据某一字段获取list实体中重复的数据
var duplicatevalue = list.GroupBy(p => p.Name).Where(g => g.Count() > ).Select(p => p.Key).ToList();
//已知Name字段值中有重复值,根据Name字段查出重复值
var sbarry = string.Join("','", duplicatevalue.ToArray());
var sdk = list.Where(p => sbarry.Contains(p.Name)).ToList();//找出符合条件的值重复的数据
//9、根据某一字段获取list实体中重复的数据
var data2 = list.Where(p => list.Count(x => x.Name == p.Name) > ).ToList();//找出符合条件的值重复的数据(这种方法比上8的好处是直接就可以查出实体)
int number = - ;
var data = list.Where(p => list.Count(x => x.Name == p.Name) >= number).ToList();//统计重复数据是5条以上的
//10、只获取list实体部分字段的值
var PartList = list.Select(p => new { p.Name, p.ID}).ToList();
var PartList2 = list.Where(p => p.ID==).Select(p => new { p.Name, p.ID }).ToList();
var r = PartList2.Select(p => p.ID).FirstOrDefault(); foreach (var item in PartList2) { }
//11、只获取list实体部分字段的值
var PartList3 = list.Select(p => new Student2 { Name = p.Name, ID = p.ID }).ToList();
}
} public class Student2 { public int ID { get; set; } public string Name { get; set; } } public class Student { public int ID { get; set; } public string Name { get; set; } public int Age { get; set; } } }
//根据某一字段值获取最大值
List<testLambdaMax> lmax = new List<testLambdaMax>{
new testLambdaMax(){Id=,Name="A"},
new testLambdaMax(){Id=,Name="B"},
new testLambdaMax(){Id=,Name="C"},
new testLambdaMax(){Id=,Name="D"}
}; var b = lmax.OrderByDescending(t => t.Id).Select(p => p.Name).FirstOrDefault(); //根据list实体中某一字段值去重
List<Test> t = new List<Test>() {
new Test(){id=1,name="车辆"},
new Test(){id=2,name="车辆"},
new Test(){id=3,name="飞机"},
new Test(){id=4,name="火车"},
new Test(){id=4,name="火车"},
};
var q = t.Where(d1 => t.Count(d2 => d2.name == d1.name) > 1).Distinct().ToList();

Lamda简单使用的更多相关文章

  1. 如何编写高质量的 JS 函数(3) --函数式编程[理论篇]

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/EWSqZuujHIRyx8Eb2SSidQ作者:杨昆 [编写高质量函数系列]中, <如何 ...

  2. Linq和Lamda表达式的简单处理方式

    一 什么是LINQ? LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特性. ...

  3. 解读ASP.NET 5 & MVC6系列(12):基于Lamda表达式的强类型Routing实现

    前面的深入理解Routing章节,我们讲到了在MVC中,除了使用默认的ASP.NET 5的路由注册方式,还可以使用基于Attribute的特性(Route和HttpXXX系列方法)来定义.本章,我们将 ...

  4. 扩展lamda表达中distinct按照字段去除重复

    首先,我们定义一个Student类来测试. public class Student { public int ID { get; set; } public string Name { get; s ...

  5. SQL、Linq、lamda表达式 同一功能不同写法

    一.SQL.Linq.lamda表达式 同一功能不同写法 SQL LINQ Lambda SELECT * FROM HumanResources.Employee from e in Employe ...

  6. Python 之 lamda 函数

    1.例子 语法:lambda [args1,argus2....]:expression map(lambda x: x*x, [y for y in range(10)]) lambda:" ...

  7. [.net 面向对象程序设计进阶] (7) Lamda表达式(三) 表达式树高级应用

    [.net 面向对象程序设计进阶] (7) Lamda表达式(三) 表达式树高级应用 本节导读:讨论了表达式树的定义和解析之后,我们知道了表达式树就是并非可执行代码,而是将表达式对象化后的数据结构.是 ...

  8. python 内置函数 lamda表达式。 open 文件方法

    lamda 表达式 lambda表达式 学习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即: 普通的条件语句 if 1 == 1: name = 'kaixin' else: ...

  9. WCF简单教程

    WCF是DotNet体系中很重要的一项技术,但是组内很多组员通过书籍自学的时候 感觉涉及面太广.配置文件太复杂,新名词太多.抓不到头绪,有感于此,决定进行一次组内技术培训,顺便把培训讲义整理到blog ...

随机推荐

  1. java 类型转换一些相关问题

    猜测:第二句 第四句会出错 结果是第二句和第四句会出错.说明了父类可以向子类类型转换,而不同的子类直接不能类型转换.

  2. 全排列next_permutation()用法和构造函数赋值

    全排列next_permutation()用法 在头文件aglorithm里 就是1~n数组的现在的字典序到最大的字典序的依次增加.(最多可以是n!种情况) int a[n]; do{ }while( ...

  3. 关于数据库中的三值逻辑(Tree-Value-Logic)

    在sql中,逻辑表达式(也叫做谓词),可以有三种值:True.False.Unknown,这就是所谓的三值逻辑,,是sql的特有属性. 在大多数编程语言中,逻辑表达式只有两个值,就是True和Fals ...

  4. redhat7.6 AIDE 系统文件完整性检查工具

    1.安装AIDE yum install  aide 安装完的配置文件,在/etc/aide.conf 自定义/etc/aide.conf 下面我写了对   /data/data1  目录做CONTE ...

  5. python-定时任务-apschelduer

    python-定时任务-apschelduer 1.      apscheduler 1.1.    install pip install apscheduler 1.2.    basic co ...

  6. centos7的网络管理(参考使用)

    How to Setup network on centos 7 Posted krizna Centos, Centos 7   After installing Centos 7, You may ...

  7. 从零构建以太坊(Ethereum)智能合约到项目实战——第25章 Embark FrameWork

    P109 .1-Embark Framework 开发入门篇P110 .2-Embark Framework 去中心化存储 (IPFS)

  8. Python学习笔记002

    字符编码:把二进制字符翻译成字符 ASCII码表    256    一个字节,8个比特 支持中文: GB2312 GBK1.0 GB18030 BIG5(台湾) unicode UTF-8 开头定义 ...

  9. Openstack----学习笔记

    ceph 分布式存储,用于存放新创建的云主机磁盘镜像文件和磁盘 创建云主机流程记录 简易版本: 上图中所有发送的请求都会存放在rabbit_mq(消息队列)中,各个组件会定时取消息队列中与自己相关的请 ...

  10. overlay rate

    1.导入nii.img文件,三维矩阵 2.模版矩阵和网络矩阵对应位置元素相乘 .* 3.生成位置为0的新矩阵 cc=(nii_new==0); 4.两个矩阵的非零元素个数   t1=length(ni ...