当前位置: 首页 > news >正文

C#常用LINQ

在开发时发现别人的代码使用到了LINQ十分便捷且清晰,这里记录一下常用LINQ和对应的使用。参考链接:LINQ 菜鸟教程

使用的学生类和字符串用于测试

public class Student
{public int StudentID;public string StudentName;public int Age;
}Student[] studentArray = { new Student() { StudentID = 1, StudentName = "John", Age = 18 },new Student() { StudentID = 2, StudentName = "Steve",  Age = 21 },new Student() { StudentID = 3, StudentName = "Bill",  Age = 25 },new Student() { StudentID = 4, StudentName = "Ram" , Age = 20 },new Student() { StudentID = 5, StudentName = "Ron" , Age = 31 },new Student() { StudentID = 6, StudentName = "Chris",  Age = 17 },new Student() { StudentID = 7, StudentName = "Rob",Age = 19  },};IList<string> stringList = new List<string>() { "C# Tutorials","VB.NET Tutorials","Learn C++","MVC Tutorials" ,"Java" };

Where过滤

1.使用LINQ查找青少年学生

Students = studentArray.Where(s => s.Age >= 18 && s.Age <= 25).ToList();

2.使用LINQ查找名字为Bill的第一位学生

st1 = studentArray.Where(s => s.StudentName == "Bill").FirstOrDefault();

更加简便的写法:
其中对于 FirstOrDefault 和 First 的区别:FirstOrDefault 找不到返回默认值,First 找不到抛出异常

st1 = studentArray.FirstOrDefault(s => s.StudentName == "Bill");
st1 = studentArray.First(s => s.StudentName == "Bill");

3.使用LINQ查找StudentID为5的学生

st2 = studentArray.FirstOrDefault(s => s.StudentID == 5);

Single 和First 的区别:Single如果查找的元素不唯一会引发异常。Single会迭代所有元素,First满足第一个元素就返回

st2 = studentArray.SingleOrDefault(s => s.StudentID == 5);

SingleOrDefault和Single区别:类似于 FirstOrDefault 和 First 的区别同上,这里不多赘述

st2 = studentArray.Single(s => s.StudentID == 5);

Select投射

1.查询包含 Tutorials 的字符串

strResult = stringList.Where(s => s.Contains("Tutorials")).ToList();

2.为字符串数组加 【】 包含起来

strResult = stringList.Select(s => "【" + s + "】").ToList();

3.筛选 Tutorials 的字符串,添加 【】 输出

strResult = stringList.Where(s => s.Contains("Tutorials")).Select(s => "【" + s + "】").ToList();

OrderBy排序

1.根据年龄进行排序

Students = studentArray.OrderBy(s => s.Age).ToList();

相关文章:

  • ubuntu学习day4
  • ubuntu--安装双系统
  • 规则引擎 - Easy Rules
  • Spark和Hadoop的区别和联系
  • 【AI提示词】数据分析专家
  • 系统安全及应用
  • 一个关于相对速度的假想的故事-3
  • Linux 入门十一:Linux 网络编程
  • PyCharm 在 Linux 上的完整安装与使用指南
  • arxml文件中的schema是什么?有什么作用?
  • Kafka 在小流量和大流量场景下的顺序消费问题
  • typedef MVS_API CLISTDEF0IDX(ViewScore, IIndex) ViewScoreArr;
  • Vue3 源码解析(六):响应式原理与 reactive
  • DePIN驱动的分布式AI资源网络
  • Python 爬虫如何获取淘宝商品的 SKU 详细信息
  • 云服务器怎么选择防御最合适
  • 深度学习中的归一化技术:从原理到实战全解析
  • 使用 Logstash 迁移 MongoDB 数据到 Easysearch
  • C语言中联合体(Union)和结构体(Struct)的嵌套用法
  • Unity打开项目时目标平台被改变
  • 吸引更多开发者,上海智元发布行业首款具身智能一站式开发平台
  • 全国登记在册民营企业超过5700万户
  • 儿童阅读空间、残疾人友好书店……上海黄浦如何打造城市书房
  • 纪念沈渭滨︱志于道而游曳于士和氓间的晚年沈先生
  • 非法收受财物2.29亿余元,窦万贵受贿案一审开庭
  • 黄仁勋今年二度到访:中国是英伟达非常重要的市场,希望继续与中国合作