linq常用方法

1.Where - 用于筛选满足特定条件的元素。

var query = list.Where(x => x > 10);

2.Select - 用于投影每个元素到一个新的形式。这通常用于转换数据的形状。

var query = list.Select(x => x * x);

3.OrderBy / OrderByDescending - 用于对元素进行升序或降序排序。

var query = list.OrderBy(x => x); // 升序

var queryDesc = list.OrderByDescending(x => x); // 降序

4.ThenBy / ThenByDescending - 在已经使用 OrderBy 或 OrderByDescending 方法排序的基础上,添加二级排序条件。

var query = people.OrderBy(p => p.LastName).ThenBy(p => p.FirstName);

5.GroupBy - 根据指定的键对元素进行分组。

var query = list.GroupBy(x => x % 2 == 0); // 按奇偶分组

6.Union / Concat / Intersect / Except - 分别用于合并两个集合、连接两个集合、取两个集合的交集和取差集。

var unionQuery = list1.Union(list2); // 并集,去除重复项

var concatQuery = list1.Concat(list2); // 连接,保留重复项

var intersectQuery = list1.Intersect(list2); // 交集

var exceptQuery = list1.Except(list2); // 差集(在list1中但不在list2中的元素)

7.Any / All - 分别用于检查序列中是否存在满足条件的元素,以及序列中的所有元素是否都满足某个条件。

bool hasEvenNumbers = list.Any(x => x % 2 == 0); // 检查是否存在偶数

bool allPositive = list.All(x => x > 0); // 检查是否所有数都是正数

8.First / FirstOrDefault / Single / SingleOrDefault - 用于获取序列中的第一个或唯一一个元素,如果没有找到符合条件的元素,则 First 和 Single 会抛出异常,而 FirstOrDefault 和 SingleOrDefault 会返回默认值(对于引用类型是 null,对于值类型是零值或默认值)。

var firstItem = list.First(); // 获取第一个元素,如果序列为空则抛出异常

var firstOrDefaultItem = list.FirstOrDefault(); // 尝试获取第一个元素,如果没有则返回默认值

9.Sum / Average / Min / Max - 分别用于计算序列中元素的和、平均值、最小值和最大值。这些操作通常用于数值类型的序列。

double sum = list.Sum(); // 计算序列中所有数的和

double average = list.Average(); // 计算平均值

int min = list.Min(); // 找出最小值

int max = list.Max(); // 找出最大值

10.Contains - 检查序列中是否包含指定的元素。

bool containsTen = list.Contains(10); // 检查序列中是否包含数字 10

11.Distinct - 去除序列中的重复元素。

var distinctNumbers = list.Distinct(); // 获取不重复的元素集合

12.Count / LongCount - 统计序列中满足特定条件的元素数量。LongCount 用于大型集合,返回 long 类型的结果,以防止整数溢出。

int count = list.Count(); // 统计元素数量

long longCount = list.LongCount(); // 用于大型集合的元素数量统计,返回 long 类型

13.Take / Skip - 分别用于从序列的开头取指定数量的元素,或跳过序列开头的指定数量元素。这两个方法常用于分页操作。

var firstFiveItems = list.Take(5); // 取前五个元素

var itemsAfterSkippingFive = list.Skip(5); // 跳过前五个元素后的所有元素

相关推荐
软件黑马王子1 小时前
Unity游戏制作中的C#基础(5)条件语句和循环语句知识点全解析
游戏·unity·c#
shepherd枸杞泡茶1 小时前
第3章 3.3日志 .NET Core日志 NLog使用教程
c#·asp.net·.net·.netcore
Aimeast7 小时前
关于选择最佳.NET Core SSH服务器库的全面分析
c#·ssh
蒋劲豪8 小时前
WPF项目暴露WebApi接口;WinForm项目暴露WebApi接口;C#项目暴露WebApi接口;
开发语言·c#·wpf
code bean9 小时前
【C# 数据结构】队列 FIFO
开发语言·数据结构·c#
时光追逐者11 小时前
推荐几款开源免费的 .NET MAUI 组件库
microsoft·开源·c#·.net·.net core·maui
软件黑马王子13 小时前
C#初级教程(1)——C# 与.NET 框架:探索微软平台编程的强大组合
开发语言·c#
shepherd枸杞泡茶13 小时前
第3章 3.2 配置系统 .NET Core配置系统
后端·c#·asp.net·.net
编程乐趣15 小时前
一文掌握DeepSeek本地部署+Page Assist浏览器插件+C#接口调用+局域网访问!全攻略来了!
开发语言·c#
我是苏苏15 小时前
C#基础:使用Linq进行简单去重处理(DinstinctBy/反射)
开发语言·c#·linq