当前位置:网站首页>C#List的使用以及Linq的使用
C#List的使用以及Linq的使用
2022-08-10 10:08:00 【kuilaurence】
class Student //先构建一个结构
{
public int year;
public string name;
}
List<Student> stus = new List<Student>();
stus.Add(new Student() {
year = 1996, name = "啊三" });
stus.Add(new Student() {
year = 1999, name = "牛二" });
stus.Add(new Student() {
year = 2002, name = "牛三" });
stus.Add(new Student() {
year = 1994, name = "卡尔文" });
stus.Add(new Student() {
year = 2004, name = "狗头" });
1.List自带方法:Find 查找单个元素 | FindIndex 查找元素的下标 | FindAll 查找符合条件的元素并返回数组
Student s = stus.Find(item => item.name == "狗头");//查找符合条件的首个元素 返回的<T> item
Console.WriteLine("student:" + s.name + " " + s.year);
int index = stus.FindIndex(item => item.name == "狗头");//查找符合条件的首个元素的下标 返回的 int
Console.WriteLine("index:" + index);
var lis = stus.FindAll(item => item.year > 2000);//查找符合条件的所以元素 返回的 list
foreach (var item in lis)
{
Console.WriteLine("findall" + item.year + " " + item.name);
}
tips:
string name = stus.Find(item => item.year == 2002).name;//查找出生时间是2002年的学生,没出问题
Console.WriteLine("name:" + name);
string name1 = stus.Find(item => item.year == 2003)?.name ?? "Alice";
//查询2003很明显会报错,所以使用[ ?.]处理报空,然后用[ ?? ]给默认值。注意:[ .? ]是高版本特性,低版本用不了。
Console.WriteLine("name1:" + name1);
2.Linq:Where 筛选 | OrderBy 排序 | select 投影
var list1 = stus.Where(item => item.year < 2000).ToList();//筛选年小于2000的学生
foreach (var item in list1)
{
Console.WriteLine("where:" + item.year + " " + item.name);
}
var list2 = stus.Where(item => item.year < 2000).OrderBy(item => item.year).ToList();//筛选排序年小于2000的学生
foreach (var item in list2)
{
Console.WriteLine("OrderBy:" + item.year + " " + item.name);
}
var list3 = stus.Where(item => item.year < 2000).OrderBy(item => item.year).Select(item => new {
age = 2022 - item.year, nick = item.name }).ToList();//筛选排序年小于2000的学生重新构建结构
foreach (var item in list3)
{
Console.WriteLine("Select:" + item.age + " " + item.nick);
}
边栏推荐
- ZZULIOJ 1124: Merge two sorted arrays
- VBA: 遍历文件抓取指定条件的数据
- LCD DRM component 框架分析
- Dialogue with Chen Ciliang: Nezha wants to popularize high-end products
- Load balancing principle analysis and source code interpretation
- 网络安全笔记6——数字证书与公钥基础设施
- 【Redis】Redis入门教程(介绍 下载安装 Jedis 图形化界面)
- 90.(cesium之家)cesium高度监听事件
- Redis(三)——配置文件详解、发布和订阅、新数据类型
- 武功修炼:内功
猜你喜欢

ESP8266 Tutorial 1 - Introduction to ESP8266 Hardware Platform
![[Azure Cloud] What is the difference between a service endpoint and a private link?point of view (1)](/img/f6/561a5ff4e518d423cc13a58dcc4383.png)
[Azure Cloud] What is the difference between a service endpoint and a private link?point of view (1)

「时序数据库」使用cassandra进行时间序列数据扫描

SQL中的字符串截取函数

对话陈赐靓:哪吒要让高端产品大众化

「首席工程师」首席(Principal )工程师修炼之道

91.(cesium之家)cesium火箭发射模拟

「应用架构」TOGAF建模:应用程序迁移图

绘制温度曲线图;QChart,

Flutter实战-请求封装(五)之Isolate线程改造
随机推荐
CatchAdmin实战教程(四)Table组件之自定义基础页面
文本选中圆角样式border-radius
ESP8266 Tutorial 1 - Introduction to ESP8266 Hardware Platform
细说Redis监控和告警
【Prometheus】Node Exporter常用查询PromQL 语句大总结
俄罗斯宣布临时禁止进口摩尔多瓦植物产品
MySQL executes the query process
杭电多校七 1008-Triangle Game(博弈)
14道高频手写JS面试题及答案,巩固你的JS基础
面试官:项目中 Dao、Service、Controller、Util、Model 怎么划分的?
「数据架构」数据模型,数据字典,数据库模式 和ERD的比较
Plot temperature curves; QChart,
「可扩展性」可扩展性最佳实践:来自eBay的经验教训
【软考 系统架构设计师】系统可靠性分析与设计① 系统可靠性分析
owl.carousel海报卡片Slider轮播切换
【Software Exam System Architect】System Reliability Analysis and Design ① System Reliability Analysis
绘制温度曲线图;QChart,
「数据战略」结果驱动的企业数据策略:组织和治理
Chapter 3 Search and Graph Theory (3)
WebView2 通过 PuppeteerSharp 实现爬取 王者 壁纸 (案例版)