新闻中心

C# LINQ查询怎么写 C# LINQ to Objects基本查询语法教程

2025-11-05
浏览次数:
返回列表
LINQ是C#中用于操作集合的查询功能,需引入System.Linq命名空间;支持查询表达式语法(类似SQL)和方法语法(Lambda),如var query = from name in names where name.StartsWith("A") select name;常用操作符包括Where筛选、Select投影、OrderBy排序、Take/Skip分页、Any/All判断、FirstOrDefault获取首元素;可查询复杂对象如List,并利用延迟执行特性,在遍历时才真正运行查询,避免意外需用ToList()立即执行。

c# linq查询怎么写 c# linq to objects基本查询语法教程

在C#中,LINQ(Language Integrated Query)是一种强大的查询功能,允许你以简洁、可读性强的方式操作数据集合。特别是 LINQ to Objects,用于对内存中的集合(如数组、List、Dictionary等)进行查询。下面介绍基本的LINQ查询语法和常用操作。

1. 引入命名空间

使用LINQ前,确保引入以下命名空间:
using System.Linq;
这是必须的,否则无法使用LINQ扩展方法。

2. 查询表达式语法 vs 方法语法

LINQ提供两种写法:查询表达式语法(类似SQL)和方法语法(使用Lambda表达式)。

示例数据:

List<string> names = new List<string> { "Alice", "Bob", "Charlie", "Anna", "D*id" };

查询表达式语法(推荐初学者):

var query = from name in names
            where name.StartsWith("A")
            select name;

foreach (var n in query)
{
    Console.WriteLine(n);
}
// 输出: Alice, Anna

方法语法(更灵活):

刺鸟创客 刺鸟创客

一款专业高效稳定的AI内容创作平台

刺鸟创客 110 查看详情 刺鸟创客
var query = names.Where(name => name.StartsWith("A"));
两种方式结果相同,编译后也几乎一样。方法语法更常用于复杂逻辑或链式调用。

3. 常用LINQ操作符

以下是几个最常用的LINQ方法及其用途:

  • Where:筛选元素
  • names.Where(n => n.Length > 4)
  • Select:投影转换(提取或转换字段)
  • names.Select(n => n.ToUpper())
  • OrderBy / OrderByDescending:排序
  • names.OrderBy(n => n)
  • ThenBy:次要排序(配合OrderBy使用)
  • names.OrderBy(n => n.Length).ThenBy(n => n)
  • Take / Skip:分页控制
  • names.Skip(1).Take(3) // 跳过第一个,取三个
      
  • Any / All:判断是否存在或是否全部满足条件
  • names.Any(n => n.StartsWith("B")) // true
    names.All(n => n.Length > 1)         // true
      
  • First / FirstOrDefault:获取第一个匹配项(FirstOrDefault在无结果时不抛异常)
  • names.FirstOrDefault(n => n.StartsWith("Z")) // 返回 null
      

4. 查询复杂对象

LINQ也适用于自定义类。例如:
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

List<Person> people = new List<Person>
{
    new Person { Name = "Alice", Age = 25 },
    new Person { Name = "Bob", Age = 30 },
    new Person { Name = "Charlie", Age = 35 }
};

// 查询年龄大于28的人名
var result = from p in people
             where p.Age > 28
             select p.Name;

// 或使用方法语法
var result2 = people.Where(p => p.Age > 28).Select(p => p.Name);

5. 延迟执行特性

LINQ查询是“延迟执行”的,意思是只有在遍历结果(如 foreach、ToList()、ToArray())时才会真正运行。
var query = people.Where(p => p.Age > 25);
people.Add(new Person { Name = "Diana", Age = 27 }); // 后续添加也会被包含

foreach (var p in query) { ... } // 此时才执行,会包含Diana
若想立即执行,可用 ToList() 或 ToArray() 固化结果。

基本上就这些。掌握 Where、Select、OrderBy 和 FirstOrDefault 等基础操作,就能处理大多数集合查询需求。LINQ让代码更清晰,减少手动遍历的繁琐逻辑。不复杂但容易忽略的是延迟执行机制,理解它能避免一些意外bug。

以上就是C# LINQ查询怎么写 C# LINQ to Objects基本查询语法教程的详细内容,更多请关注其它相关文章!


# 查询功能  # 河北路街道网站建设方案  # 西宁推广营销网络  # 锦州网站建设服务商  # 行稳致远网站建设推广  # 怎么查头条关键词排名  # 中山网站建设优化技术  # 长沙平台seo优化技巧  # 温州网站建设与制作企业  # 芒果推广方式与渠道营销  # 网站的运营推广怎么做  # c#  # 的是  # 如何使用  # 链式  # 分页  # 两种  # 第一个  # 时才  # 信号量  # 遍历 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: c++如何实现一个简单的ECS框架_c++数据驱动设计与游戏开发  如何使用纯J*aScript判断Input元素是否在特定类容器内  J*aScript设计模式实践_j*ascript代码优化  Yandex免登录网页版地址 Yandex搜索引擎官方访问入口  漫蛙2正版漫画站 漫蛙2网页版快速访问入口  mc.js游戏直达 mc.js网页免下载版本秒进地址  动漫花园资源网使用步骤_动漫花园资源网下载流程  ExcelARRAYTOTEXT函数怎么自定义分隔符输出数组文本_ARRAYTOTEXT实现动态生成SQL语句  b站赚钱渠道_b站收益来源  mysql如何设置表访问权限_mysql表访问权限配置  微信网页版登录教程_微信网页版登录入口在哪  Typer应用中灵活处理命令行参数的令牌化与解析  Win11怎么设置鼠标主按键_Win11鼠标左右键功能互换  Python中高效访问嵌套字典与列表中的键值对  J*aScript中如何高效提取对象指定属性  sublime如何处理大型CSV文件的列对齐_sublime高级表格编辑插件指南  曝R星经典之作开发图 设计简陋但信息密集!  b站如何看历史记录_b站观看历史找回方法  Composer的 "check-platform-reqs" 命令有什么用_在部署前检查生产环境是否满足Composer依赖需求  消息称三星明年 2 月正式发布 HBM4,与 SK 海力士同台竞技  小红书网页版入口链接分享 小红书官网直接进  最新韩小圈网页版登录入口_官网在线观看官方链接  mysql密码锁定怎么解锁_mysql密码锁定解锁后修改密码步骤  知音漫客正版漫画平台_知音漫客官网账号登录  J*aScript数组对象转换:按指定键分组与值收集  Win11怎么关闭触摸屏_Windows 11禁用HID符合标准触摸屏  必由学官方网站入口 必由学学生教师共用登录通道  J*aScript中高效管理与清空动态列表:避免循环陷阱  AO3访问入口汇总 AO3网页版同人作品一键直达  Tailwind CSS line-clamp 布局问题解析与修复指南  双系统安装时,如何设置默认启动系统? msconfig命令了解一下!  构建轻量级网站内部消息系统:Formspree 集成指南  如何在 Excel Online 和 Google 表格中更改日期格式  高德地图总提示网络异常怎么办 高德地图离线导航设置与网络排查方法  LocoySpider如何部署到云服务器_LocoySpider云部署的远程配置  虫虫漫画精品漫画官网_虫虫漫画精品漫画官网进入精品漫画  Win11网速慢怎么解决 Win11网络设置优化解除限速  学习通网页版快速入口 学习通官网网页版直接打开  小红书商家版怎样在笔记嵌入商品卡路径_小红书商家版在笔记嵌入商品卡路径【挂载教程】  Win11如何开启讲述人功能 Win11屏幕阅读器(讲述人)开启与关闭【教程】  探索高级语言到原生C/C++的转译:挑战与内存管理策略  如何使用CaptainHook和Composer管理Git钩子_在提交前自动运行代码检查的Composer配置  抖音商城签到领现金是真的吗_抖音商城签到奖励与提现说明  免费抖音短视频入口_抖音网页版短视频免费通道  在WordPress中通过REST API获取BasicAuth保护的远程文章  c++如何使用折叠表达式(Fold Expressions)_c++17可变参数模板新技巧  vivo浏览器怎么扫描二维码 vivo浏览器内置扫一扫功能使用方法  windows10怎么关闭系统提示音_windows10彻底静音设置方法  京东单号查询入口_京东快递订单追踪入口  QQ邮箱在线登录平台 QQ邮箱个人邮箱网页版入口 

搜索