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是封装的反射方法,能够将字段映射过去
相关推荐
绿算技术2 小时前
Solidigm联合绿算技术共同发布《面向 SOHO AI 推理的存储扩展方案》技术白皮书
人工智能·科技·算法·架构·spark
海盗12343 小时前
微软技术周报 2026-08-31~09-07:GPT-6 Astra 登陆 Foundry、M365 全球认证故障复盘、C# 15 封闭层级
gpt·microsoft·c#
小刘在重生~3 小时前
Java 集合|Collection、List、ArrayList、LinkedList、泛型、Collections 工具类
java·数据结构·list
EDPJ3 小时前
(2026|IPI|我的论文投稿中,PSP 超轻量采样算法,轻量化架构探索/早融合+头压缩)LUMIN:面向工业异常检测的轻量级通用制造检测网络
算法·计算机视觉·架构·异常检测·采样算法
我不会起名字3223 小时前
一天一道算法题(29):单调栈
java·数据结构·python·算法·leetcode·golang·单调栈
苦瓜小生3 小时前
【前端】【力扣与手撕】十天带你刷完前端算法与手撕,全是最简单好记的最优解法!day4
前端·数据结构·算法·leetcode·面试
不会就选b4 小时前
算法日常・每日刷题--<贪心>5
算法
reasonsummer4 小时前
【办公类-115-01】20260906育儿知识(家园小报)批量制作(2026年9月-2027年6月)
开发语言·数据库·c#
刘广睿4 小时前
素材去重为什么难?文件指纹、感知哈希与相似度判定的设计笔记
算法·哈希算法·产品设计·素材管理
少司府4 小时前
C++进阶:智能指针
开发语言·数据结构·c++·b树·算法·c·智能指针