c# 学习笔记 - LINQ

1.LINQ概述

1.1 LINQ介绍

 LINQ是语言集查询(Language Integrated Query, LINQ)的查询语言,其集成了c#当中的查询语法,可以通过相同的语法访问不同的数据源.
 我们来看一个一个简单的LINQ查询的语法,LINQ查询语法和我们熟悉SQL查询语句非常相似,从哪个数据源查询from,查询条件where,以及中间的数据处理orderby操作,最后使用select查询即可.

var query = from x in students
	where x.age >= 2
	orderby x.age descending
	select x;
foreach(var x in query) {
   
    Console.WriteLine(x.age + " " + x.name);
}

 LINQ细节注意

  1. LINQ是一个查询语句,其必须以from子句开头,以select 或 group 子句结束. 在这两个子句之间可以使用where、orderyby、join、let、其他from子句.
  2. LINQ当中的子句from、where、select等都是查询中预定义的关键字。
  3. LINQ查询的执行不是在定义的时候执行,而是在foreach循环访问查询的时候执行查询操作.

1.2 LINQ基本使用

using System.Collections;
class students {
   
    public int age {
    get; set; }
    public string name {
    get; set; }
    public students(int v1, string v2) {
   
        this.age = v1;
        this.name = v2;
    }
}

class Test {
   
    static void Main() {
   
        List<students> students = new List<students>(); // 定义数据源
        students.Add(new students(3, "张三"));
        students.Add(new students(1, "李一"));
        students.Add(new students(2, "王二"));

        var query = from x in students // 定义LINQ查询
                    where x.age >= 2
                    orderby x.age descending
                    select x;
        foreach(var x in query) {
    // 使用foreach语句执行该查询
            Console.WriteLine(x.age + " " + x.name);
        }
    }
}

/*
3 张三
2 王二
*/

1.3 LINQ的扩展

在这里插入代码片

2. 标准查询操作符

2.1 筛选(索引、类型筛选…)

 筛选的通用代码(案例只写LINQ查询的关键代码)

using System.Collections;
class students {
   
    public int age {
   get; set;}
    public string name {
   get; set;}
    public students(int v1, string v2){
   
        this.age = v1;
        this.name = v2;
    }
}


class Test{
   
    static void Main(){
   
        List<students> students = new List<students>();
        students.Add(new students(1, "A1"));
        students.Add(new students(2, "B2"));
        students.Add(new students(3, "C3"));
        students.Add(new students(4, "A4"));
        students.Add(new students(5, "B5"));
        students.Add(new students(6, "C6"));

        var query = from r in students
                    where r.age >= 2 && r.age <= 5
                    select r;

        foreach(var x in query) {
   
            Console.WriteLine(x.name + " " + x.age);
        }

    }
}

 筛选:

// 简单查询
var query = from r in students
	where r.age >= 2 && r.age <= 5
	select r;
	
// 使用了where() 与 select()扩展
var query = students.
	Where(r => r.age >= 2 && r.age <= 5).
	Select(r => r);

 索引筛选:

// 利用where方法的重载实现
var query = students.
    Where((r, index) => index % 2 == 0). // 索引默认从0开始排序
    Select(r => r);

 类型筛选:

// 使用OfType()扩展方法,将string类型参数传递给泛型参数
object[] data = {
    "one", 2, "three", 4, "five", 6 };
var query = data.OfType<string>();
foreach(var item in query) {
   
    Console.WriteLine(item);
}

2.2 索引筛选

2.3

3. xxxxxxx

相关推荐

  1. c# 学习笔记 - LINQ

    2024-01-07 08:32:04       35 阅读
  2. C#——系统学习LINQ

    2024-01-07 08:32:04       18 阅读
  3. C#学习(十二)——Linq

    2024-01-07 08:32:04       29 阅读
  4. LINQC#】

    2024-01-07 08:32:04       35 阅读
  5. <span style='color:red;'>C</span># <span style='color:red;'>LINQ</span>

    C# LINQ

    2024-01-07 08:32:04      30 阅读
  6. C#】Microsoft C# 之 LINQ 查询语法视频学习总结

    2024-01-07 08:32:04       31 阅读
  7. LINQ表达式学习入门

    2024-01-07 08:32:04       12 阅读
  8. c# linq 查询

    2024-01-07 08:32:04       25 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-07 08:32:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-07 08:32:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-07 08:32:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-07 08:32:04       20 阅读

热门阅读

  1. ElasticSearch删除索引的命令

    2024-01-07 08:32:04       40 阅读
  2. 2024年学习计划

    2024-01-07 08:32:04       50 阅读
  3. 牛客网编程题——“求IBSN码”

    2024-01-07 08:32:04       37 阅读
  4. Mybatis缓存相关面试题有多卷

    2024-01-07 08:32:04       31 阅读
  5. Android NumberPicker使用

    2024-01-07 08:32:04       43 阅读
  6. SQL SELECT 语句

    2024-01-07 08:32:04       38 阅读
  7. 大模型查询工具助手之股票免费查询接口

    2024-01-07 08:32:04       36 阅读
  8. 数据结构 —— 手写排序算法

    2024-01-07 08:32:04       48 阅读
  9. centoss7安装mysql详细教程

    2024-01-07 08:32:04       44 阅读
  10. Linux | 20 个常用的 Linux 基本指令

    2024-01-07 08:32:04       28 阅读
  11. 【思路】基于Spring实现配置的界面化修改

    2024-01-07 08:32:04       38 阅读
  12. Spring之IOC

    2024-01-07 08:32:04       26 阅读