.NET 6 中添加了许多 LINQ 方法。 下表中列出的大多数新方法在 System.Linq.Queryable 类型中具有等效方法。

欢迎关注

如果你刻意练习某件事情请超过10000小时,那么你就会达到世界级别

TryGetNonEnumeratedCount 尝试在不强制枚举的情况下确定序列中的元素数。

  List<object> numbers1 = new List<object>() { 5, 4, "nihao" };
int num = 0;
numbers1.TryGetNonEnumeratedCount(out num);

num输出为3

Chunk 将序列的元素拆分为指定大小的区块

            var list = new List<dynamic>
{
new { Id = 1, Property = "value1" },
new { Id = 2, Property = "value2" },
new { Id = 3, Property = "value1" }
}; var a = list.Chunk(2);

返回 两个元素,第一个list长度为2,第二个为1

ElementAt方法 返回元素指定索引或者结束的索引

var list = new List<dynamic>
{
new { Id = 1, Property = "value1" },
new { Id = 2, Property = "value2" },
new { Id = 3, Property = "value1" },
new { Id = 4, Property = "value4" },
new { Id = 5, Property = "value2" },
new { Id = 6, Property = "value6" },
new { Id = 7, Property = "value7" },
new { Id = 8, Property = "value8" },
new { Id = 9, Property = "value9" } };
var b=list.ElementAt(2);
var a=list.ElementAt(^2);

a返回的是id=8的item

b返回的是id=9的item

MaxBy 和 MinBy 返回元素中最大值或最小值

  • MaxBy 返回元素中的最大元素
  • MinBy 返回元素中的最小元素
List<int> numbers1 = new List<int>() { 5, 4, 1, 3, 9, 8, 6, 7, 12, 10 };
var maxnum= numbers1.MaxBy(x => x);
var mixnum= numbers1.MinBy(x => x);

maxnum输出为12,minnum为1

DistinctBy 根据某元素去重

  • (相当于以前的自定义方法)
            var list = new List<dynamic>
{
new { Id = 1, Property = "value1" },
new { Id = 2, Property = "value2" },
new { Id = 3, Property = "value1" }
}; // returns objects with Id = 1, 2, but not 3
var distinctList = list.DistinctBy(x => x.Property).ToList();

返回id为1和2的

就相当于自定义扩展方法

public static IEnumerable<t> DistinctBy<t>(this IEnumerable<t> list, Func<t, object> propertySelector)
{
return list.GroupBy(propertySelector).Select(x => x.First());

ExceptBy返回 两个序列的元素的集合差值的序列

IntersectBy 返回两个序列元素 得交际

UnionBy 连接不同集合,过滤某元素相同项

FirstOrDefault返回序列中满足条件的第一个元素;如果未找到这样的元素,则返回默认值

LastOrDefault 返回序列中的最后一个元素;如果未找到该元素,则返回默认值

SingleOrDefault 返回序列中的唯一元素;如果该序列为空,则返回默认值;如果该序列包含多个元素,此方法将引发异常。

Take 从序列的开头返回指定数量的相邻元素

int[] grades = { 59, 82, 70, 56, 92, 98, 85 };

IEnumerable<int> topThreeGrades =
grades.OrderByDescending(grade => grade).Take(3); Console.WriteLine("The top three grades are:");
foreach (int grade in topThreeGrades)
{
Console.WriteLine(grade);
}
/*
This code produces the following output: The top three grades are:
98
92
85
*/

Zip将指定函数应用于两个序列的对应元素,以生成结果序列

int[] numbers = { 1, 2, 3, 4 };
string[] words = { "one", "two", "three" }; var numbersAndWords = numbers.Zip(words, (first, second) => first + " " + second); foreach (var item in numbersAndWords)
Console.WriteLine(item); // This code produces the following output: // 1 one
// 2 two
// 3 three

NET 6 中新增的LINQ 方法的更多相关文章

  1. S5中新增的Array方法详细说明

      ES5中新增的Array方法详细说明 by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wor ...

  2. ES5中新增的Array方法详细说明

    一.前言-索引 ES5中新增的不少东西,了解之对我们写JavaScript会有不少帮助,比如数组这块,我们可能就不需要去有板有眼地for循环了. ES5中新增了写数组方法,如下: forEach (j ...

  3. ECMAScript 5中新增的数组方法

    ECMAScript 5中定义了9个新的数组方法,用于遍历.映射.过滤.检测.简化和搜索数组. 在开始介绍之前,很有必要对这几个新增的数组方法做一个概述.首先,大多数方法的第一个参数接收一个函数,并且 ...

  4. ES6中新增的字符串方法

    实例方法:includes(), startsWith(), endsWith() 传统上,JavaScript 只有indexOf方法,可以用来确定一个字符串是否包含在另一个字符串中.ES6 又提供 ...

  5. HTML5自学笔记[ 4 ]js中新增的选择器方法

    querySelector():参数与jQuery一样,这个方法获取一组元素中的第一个元素. querySelectorAll():获取一组元素. getElementsByClassName():获 ...

  6. Ubuntu系统下在github中新增库的方法

    上一篇介绍了Ubuntu16.04系统下安装git的方法.本博客介绍怎么在github上怎么新建库. 如图 root@ranxf:/home/ranxf/learnGit/ranran_jiekou# ...

  7. ECMAScript5中新增的Array方法实例详解

    ECMAScript5标准发布于2009年12月3日,它带来了一些新的,改善现有的Array数组操作的方法.(注意兼容性) 在ES5中,一共有9个Array方法:http://kangax.githu ...

  8. 带你学习ES5中新增的方法

    1. ES5中新增了一些方法,可以很方便的操作数组或者字符串,这些方法主要包括以下几个方面 数组方法 字符串方法 对象方法 2. 数组方法 迭代遍历方法:forEach().map().filter( ...

  9. ECMAScript 5中对Array中新增了9个方法

    ECMAScript 5中对Array中新增了9个方法: 5个迭代方法(循环操作数组中的各个项):forEach(),map(),filter(),every()和some() 2个归并方法(迭代数组 ...

  10. 数组Array和字符串String的indexOf方法,以及ES7(ES2016)中新增的Array.prototype.includes方法

    前言 我们在判断某一个字符是否存在于一个字符串中或者某一个值是否存在于一个数组中时,ES7之前我们需要使用indexOf,ES7引入了新的方法includes 语法 数组:Array.inexOf(s ...

随机推荐

  1. 十,Spring Boot 的内容协商的详细剖析(附+Debug调试说明)

    十,Spring Boot 的内容协商的详细剖析(附+Debug调试说明) @ 目录 十,Spring Boot 的内容协商的详细剖析(附+Debug调试说明) 1. 基本介绍 2. 准备工作 3. ...

  2. Servlet——简介

    Servlet    快速入门   1.创建web项目,导入Servlet依赖坐标 <dependencies> <dependency> <groupId>jav ...

  3. volatile关键字最全原理剖析

    介绍 volatile是轻量级的同步机制,volatile可以用来解决可见性和有序性问题,但不保证原子性. volatile的作用: 保证了不同线程对共享变量进行操作时的可见性,即一个线程修改了某个变 ...

  4. 基于Keras-YOLO实现目标检测

    Keras-YOLO 3项目使用Python语言实现了YOLO v3网络模型,并且可以导入Darknet网络预先训练好的权重文件信息直接使用网络进行目标识别. 1. 下载Keras-YOLO 3项目 ...

  5. 图书《React.js实战》代码下载

    图书<React.js实战>代码下载链接:https://pan.baidu.com/s/1kep0xsTeSupyr15c3VwmBw 提取码:9pra 这个代码经过图书<Reac ...

  6. ASP.NET Core OData 9的发布,放弃 .NET Framework

    Microsoft 于 2024 年 8 月 30 日宣布推出 ASP.NET Core OData 9 包. 这个新包将ASP.NET Core与.NET 8 OData库保持一致,改变了OData ...

  7. 八字测算引流seo程序php网页版黄历/排盘/抽签/星座/生肖/解梦整站程序分享

    2演示站: https://s31.yczfcn.com/ 2源码说明: 1.手机端和PC端共两套模板,手机端访问时候自动跳转至手机端模板和域名. 2.本程序包含文章系统,结合自身的免费测算功能,适合 ...

  8. nextjs 的函数,参数,属性装饰器的使用

    // 属性装饰器 const doc1:PropertyDecorator = (target:any,val: string | symbol) => { console.log(target ...

  9. 用sdkman管理多个jdk切换

    前言 最近项目前后端进行升级,需要在jdk8和jdk17两个版本切换.最简单的是通过手动切换,但切换过程太繁琐,修改环境变量,达到切换目的.于是尝试其它解决方案,最终确实使用sdkman工具. sdk ...

  10. Kubernetes 跨 StorageClass 迁移 Persistent Volumes 完全指南

    大家好,我是米开朗基杨. KubeSphere 3.3.0 (不出意外的话~)本周就要 GA 了,作为一名 KubeSphere 脑残粉,我迫不及待地先安装 RC 版尝尝鲜,一顿操作猛如虎开启所有组件 ...