Lamda简单使用
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简单使用的更多相关文章
- 如何编写高质量的 JS 函数(3) --函数式编程[理论篇]
本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/EWSqZuujHIRyx8Eb2SSidQ作者:杨昆 [编写高质量函数系列]中, <如何 ...
- Linq和Lamda表达式的简单处理方式
一 什么是LINQ? LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特性. ...
- 解读ASP.NET 5 & MVC6系列(12):基于Lamda表达式的强类型Routing实现
前面的深入理解Routing章节,我们讲到了在MVC中,除了使用默认的ASP.NET 5的路由注册方式,还可以使用基于Attribute的特性(Route和HttpXXX系列方法)来定义.本章,我们将 ...
- 扩展lamda表达中distinct按照字段去除重复
首先,我们定义一个Student类来测试. public class Student { public int ID { get; set; } public string Name { get; s ...
- SQL、Linq、lamda表达式 同一功能不同写法
一.SQL.Linq.lamda表达式 同一功能不同写法 SQL LINQ Lambda SELECT * FROM HumanResources.Employee from e in Employe ...
- Python 之 lamda 函数
1.例子 语法:lambda [args1,argus2....]:expression map(lambda x: x*x, [y for y in range(10)]) lambda:" ...
- [.net 面向对象程序设计进阶] (7) Lamda表达式(三) 表达式树高级应用
[.net 面向对象程序设计进阶] (7) Lamda表达式(三) 表达式树高级应用 本节导读:讨论了表达式树的定义和解析之后,我们知道了表达式树就是并非可执行代码,而是将表达式对象化后的数据结构.是 ...
- python 内置函数 lamda表达式。 open 文件方法
lamda 表达式 lambda表达式 学习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即: 普通的条件语句 if 1 == 1: name = 'kaixin' else: ...
- WCF简单教程
WCF是DotNet体系中很重要的一项技术,但是组内很多组员通过书籍自学的时候 感觉涉及面太广.配置文件太复杂,新名词太多.抓不到头绪,有感于此,决定进行一次组内技术培训,顺便把培训讲义整理到blog ...
随机推荐
- Catalyst3560密码破解
1.关机:2.将设备MODE键按住,然后开机,进入switch:switch: flash_initInitializing Flash...flashfs[0]: 7 files, 2 direct ...
- 杭电 2096 小明A+B
小明A+B Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- c语言中的qsort用法
1.首先了解 int cmp(const void* a, const void* b) 表示声明cmp函数,其返回值为int型,参数为两个不可修改(const)的void型指针 2.函数原型 函数声 ...
- leetcode 0215
目录 ✅ 1002. 查找常用字符 描述 解答 java other's implementation(todo watch me) cpp py ✅ 821. 字符的最短距离 描述 解答 cpp p ...
- Linux 命令中 find 和 xargs 命令的用法
find 命令(一) find 命令主要作用是沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作.Linux 下 find 命令提供了相当多的查找条件,功能很强大,对应的学习难度也比较大. ...
- [python]python中的一些包以及他们的基本用处和安装
pika可以用来连接rabbitmqpip install pika -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com ...
- Css——显示2行数据,超出显示...
解决需求——数据较长时,只显示两行,超出显示... .showTwoRow { text-align: left; text-overflow: ellipsis; display: -webkit- ...
- day 10 作业
# 2.写函数,接收n个数字,求这些参数数字的和. def sum_func(*args): total = 0 for i in args: total += i return total prin ...
- 【原】postman常用设置全局变量的js片段
postman知识总结: API自动化利器:http://www.bayescafe.com/tools/use-postman-to-test-api-automatically.html 1.获取 ...
- 820复试算法 快排找第 k 小
done {20-01-30 12:56} ref: https://blog.csdn.net/fengsigaoju/article/details/50728588 note: void qui ...