找回密码
 立即注册
快捷导航

[.NET] linq知识点

[复制链接]
engine 2023-8-22 13:53:22 | 显示全部楼层

Linq 是 C# 3.0 引入的特性

让处理对象就像执行SQL语句一样简单方便;

LINQ是C#的一个强大的特性,它为数据查询和操作提供了简洁、统一的语法,使得数据处理变得更加直观和灵活。

List<Students> list = new List<Students>();
list.Add(new Students { Name = "张三", Age = 18});
list.Add(new Students { Name = "王五", Age = 20});

// 1、查询语法(类SQL风格)
var query = from student in list
                where student.Age > 18
                select student;

// 2、方法语法(即:扩展方法 和 Lambda表达式)
var query2 = list.Where(w=>w.Age > 18);
// 基本查询(包括:Where、Select、OrderBy/OrderByDescending、Take...Skip 等)
var adults = list.Where(s=>s.Age > 18)    // 筛选
                .OrderBy(o=>o.Name)    // 排序
                .Select(s=>s.Name)    // 查询
                .Take(10);    // 取前10条,分页用

// 复杂查询(包括:连接查询、分组查询、聚合查询、嵌套查询 等)
var groupbyage = list.GroupBy(s=>s.Age)      // 统计年龄
                    .Select(s=> new {Age = s.Key, Count=s.Count()}));

// 查询结果处理
var rellist = list.ToList();    // 转换为List
var firstStudent = list.ForstOrDefault();    // 取第一个
var isAnyAdult  = list.Any(a=>a.Age>18);    // 是否有满足条件的
// Single?

// Deferred Execution 延迟执行
var querys = list.Where(w=>w.Age > 18);    // 不要立即ToList
foreach(var item in querys){
    Console.WriteLine(item.Name);    // 
}

Linq To Objects 和 Linq To SQL

// Linq To Objects 用于在内存中对集合进行查询
var query1 = from student in list
                where student.Age > 18
                select student;

// Linq To SQL 用于与数据库进行交互查询
var query2 = from student in dbContext.Students
                where student.Age > 18
                select student;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

温馨提示

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

Archiver|手机版|小黑屋|DLSite

GMT+8, 2024-11-22 22:13

Powered by Discuz! X3.5 and PHP8

快速回复 返回顶部 返回列表