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. Codeforces Round #619 (Div. 2) Ayoub's function

    Ayoub thinks that he is a very smart person, so he created a function f(s)f(s) , where ss is a binar ...

  2. 【原】tcp三次握手和四次挥手

  3. java窗口程序字符串时间转成时间戳

    pom.xml 文件: ?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...

  4. 多Python版本共存

    Python 3.4 和 3.7 共存 我的电脑上同时安装了 Python 3.4 和 Python 3.7 两个 Python 版本.现在打开终端窗口进入指定的版本. py -3.4 py -3.7 ...

  5. 1-9springboot之thymeleaf常用语法(html页面)

    一.引用命名空间 <html xmlns:th="http://www.thymeleaf.org"> 在html中引入此命名空间,可避免编辑器出现html验证错误,虽 ...

  6. 关于window.location.href页面跳转的坑

    "window.location.href"."location.href"是本页面跳转 "parent.location.href"是上一 ...

  7. 数据包报文格式(IP包、TCP报头、UDP报头)

    转自: https://blog.51cto.com/lyhbwwk/2162568 一.IP包格式 IP数据包是一种可变长分组,它由首部和数据负载两部分组成.首部长度一般为20-60字节(Byte) ...

  8. 文件目录T位

    场景: 共享目录设置T标志 可以看别人的文件,但不可以删除.修改别人的文件 除非是ROOT,目录的拥有者

  9. @override编译报错

    今天突然遇到一个问题,明明我重写的接口的方法,编译的时候一直报@override is not override a method from superclass,查了一下资料,这个@override ...

  10. JDK各个版本的新特性jdk1.5-jdk8(转)

    原文:http://www.cnblogs.com/langtianya/p/3757993.html JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要 ...