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();

最新文章

  1. ASP.NET Web API中的Controller
  2. 用c#开发的一款webservice调用小工具,方便测试
  3. Codeforces Round #380 (Div. 2) 总结分享
  4. Ajax深入学习
  5. oracle merge into 的例子
  6. autoreleasepool自动释放池
  7. 06-BCD计数器设计与应用——小梅哥FPGA设计思想与验证方法视频教程配套文档
  8. (旧)子数涵数&#183;Flash——影片剪辑的事件操作
  9. android讯飞语音开发常遇到的问题
  10. COGS 577 蝗灾 [CDQ分治入门题]
  11. C# Windows Phone 8 WP8 开发,将WebClient的DownloadStringCompleted事件改成非同步的awiat方法。
  12. iOS 中client和server的 Web Service 网络通信 (2)
  13. [转]Creating an iPhone Daemon
  14. .net、jquery、ajax、wcf实现数据库用户名检测局部刷新
  15. C#学习笔记-装饰模式
  16. ios 继承关系图
  17. 常用的评价指标:accuracy、precision、recall、F1-score、ROC-AUC、PR-AUC
  18. 【Linux】Screen命令
  19. json.dumps与json.loads实例
  20. 通过cassandra-cli客户端了解cassandra的内部数据结构

热门文章

  1. wx小程序笔记
  2. pytoch 安装
  3. 【PAT甲级】1056 Mice and Rice (25 分)
  4. python 之并发编程更新版进程池与进程池比较与回调函数
  5. 软件工程 - Test-Driven Development (TDD),测试驱动开发
  6. 人物 - 安迪&#183;葛洛夫,Andrew Stephen Grove,Andy Grove
  7. php 微信小程序支付
  8. 使用KVO键值监听
  9. 吴裕雄--天生自然ORACLE数据库学习笔记:常用SQL*Plus命令
  10. LeetCode 345. Reverse Vowels of a String(双指针)