C#基础:不写for循环的五种方式

一、LINQ处理

筛查(Where)、分组(GroupBy)、判空(Any)、赋值(Select)等优先选择LINQ

【常规】

cs 复制代码
List<int> nums = new(){1,2,3,4,5,6};
// 手写for:遍历判断,add到新集合
var even = nums.Where(x => x % 2 == 0).ToList();
// [2,4,6]

【selectMany重构实体】

cs 复制代码
var query = listA.SelectMany(a => listB.Select(b => new {a, b}));
foreach(var item in query)
{
    Console.WriteLine($"{item.a},{item.b}");
}

二、匿名表达式重构实体

cs 复制代码
var query = from a in listA
            from b in listB
            select new {a, b};

foreach(var x in query)
{
    Console.WriteLine($"{x.a},{x.b}");
}

三、类的只读派生属性

cs 复制代码
public class TrainShow
{
	/// <summary>
	/// 换乘消耗时间
	/// </summary>
	public TimeSpan WaitConsumeTime { get; set; } 

	/// <summary>
	/// 换乘消耗时间
	/// </summary>
	public string WaitConsumeTimeStr => $"{WaitConsumeTime.Hours}时{WaitConsumeTime.Minutes}分";

}

四、反射赋值

cs 复制代码
var list1 = sourcelist.MapTo<StudentDto>(); // MapTo是封装的反射方法,能够将字段映射过去
相关推荐
轩轶子5 分钟前
Python CLI Todo:一次数据结构错误引发的 Bug
数据结构·python·bug
Omics Pro10 分钟前
空间组学!医学代谢显微工具
数据库·人工智能·算法·机器学习·自然语言处理
Coder-magician15 分钟前
《代码随想录》刷题打卡day44:图论-part02
算法·深度优先·图论
克里斯蒂亚诺更新16 分钟前
理解机器学习的各种算法
人工智能·算法·机器学习
小范的技术工坊20 分钟前
大模型学习操作文档(13个核心概念串讲)
人工智能·学习·算法·大模型
一个低调的青年29 分钟前
电池健康状态估计(一)
经验分享·笔记·其他·算法·模型
asdzx6733 分钟前
Excel 水印方案对比:页眉图片 vs 背景图片(附 C# 实现)
c#·excel
longlongzihan34 分钟前
【LeetCode 204. 计数质数】从暴力枚举到埃拉托斯特尼筛法
算法·筛法
alphaTao38 分钟前
LeetCode 每日一题 2026/9/21-2026/9/27
python·算法·leetcode
影寂ldy43 分钟前
C# TCP转串口Modbus网关终极完整版笔记(队列防抖+一问一答+帧解析+双客户端轮询)
笔记·tcp/ip·c#