C#学习相关系列之Linq用法---where和select用法(二)

一、select用法

Linq中的select可以便捷使我们的对List中的每一项进行操作,生成新的列表。

cs 复制代码
var tt=list.select(p=>p+10);
//select括号内为List中的每一项,p+10即为对每一项的操作,即对每项都加10生成新的List

用法实例:

1、lambda表达式

cs 复制代码
int[] array = { 1,5,6,7,6,9,12,2,7,6,33};
List<int> l1 = new List<int>(array);
var t1 = l1.Select((p)=>p+10);
foreach (var item in t1)
{
     Console.WriteLine(item);
}

输出结果为:

2、Linq语法

cs 复制代码
            List<Student_1> stuList = new List<Student_1>()
            {
                new Student_1(){ID=1,Name="John",Chinese=92,Math=88,English=92},
                new Student_1(){ID=2,Name="Mary",Chinese=87,Math=94,English=82},
                new Student_1(){ID=3,Name="KangKang",Chinese=89,Math=91,English=96},
                new Student_1(){ID=4,Name="Maria",Chinese=88,Math=65,English=94},
                new Student_1(){ID=5,Name="Ben",Chinese=70,Math=91,English=82},
            };

            var t1 = from e in stuList select e.English;
            foreach (var item in t1)
            {
                Console.WriteLine(item);
            }

二、SelectMany用法

在C# Linq中,SelectMany方法用于将一个集合中的每个元素转换为另一个集合,并将所有转换后的集合合并为一个集合。

cs 复制代码
List<List<int>> list = new List<List<int>>()
{
    new List<int>() { 1, 2, 3 },
    new List<int>() { 4, 5, 6 },
    new List<int>() { 7, 8, 9 }
};

var result = list.SelectMany(x => x);

foreach (var item in result)
{
    Console.WriteLine(item);
}

三、where用法

where在Linq中主要进行对数据筛选,并且生成新的List。

cs 复制代码
            List<Student_1> stuList = new List<Student_1>()
            {
                new Student_1(){ID=1,Name="John",Chinese=92,Math=88,English=92},
                new Student_1(){ID=2,Name="Mary",Chinese=87,Math=94,English=82},
                new Student_1(){ID=3,Name="KangKang",Chinese=89,Math=91,English=96},
                new Student_1(){ID=4,Name="Maria",Chinese=88,Math=65,English=94},
                new Student_1(){ID=5,Name="Ben",Chinese=70,Math=91,English=82},
            };
            
            //lambda表达式 表达式内部填的是判断条件
            var t1 = stuList.Where(p => p.English == 88);
            // Linq 语句
            var t1 = from e in stuList where e.English == 82 select e;

需要注意的是Lambda表达式中不需要select结尾,但Linq 语句必须是select结尾否则报错

运行结果为:

参考文献:

C#的LINQ select查询、where过滤、group分组、join关联_c# t.select().join_小龙在山东的博客-CSDN博客

相关推荐
遇乐的果园14 分钟前
前端学习笔记-vue状态管理优化
前端·笔记·学习
从零开始的代码生活_36 分钟前
C++ 继承详解:访问控制、对象模型、菱形继承与设计取舍
开发语言·c++·后端·学习·算法
可乐奶茶sky1 小时前
AI Agent 学习
人工智能·学习
茯苓gao2 小时前
嵌入式开发笔记:EtherCAT协议从硬件到软件完整配置指南——从零搭建一套EtherCAT通信系统
笔记·嵌入式硬件·学习
RD_daoyi3 小时前
外链权重暴跌至13%,品牌提及反超传统链接——2026年不做Digital PR,你的独立站等于隐形
运维·网络·学习·机器学习·搜索引擎
chase。4 小时前
【学习笔记】PointWorld:迈向通用机器人操控的3D世界模型
笔记·学习·机器人
EIP低代码平台4 小时前
EIP低代码平台系统-字典功能讲解
低代码·c#·工作流
AOwhisky4 小时前
Python 学习笔记(第十三期)——运维自动化(下·前篇):远程命令执行——paramiko基础篇
运维·python·学习·云原生·自动化·运维开发·paramiko
前端世界5 小时前
MySQL 基础入门(学习第4天)——约束与 DML 操作详解
数据库·学习·mysql
dear_bi_MyOnly5 小时前
【SpringBoot配置文件】
java·spring boot·后端·学习·spring·java-ee·学习方法