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

List<T> 投影转换(Select)作用 + 详解 + 示例

List 投影转换Select作用 详解 示例一、什么是投影转换投影是 LINQ 里的核心概念对应方法就是Select()。简单说把集合里的每一个元素加工、转换、提取成新数据最终生成一个全新集合。List 本身只是存原始对象/值投影就是“数据重塑”提取字段、类型转换、拼接数据、生成新实体。二、核心作用只提取需要的字段过滤冗余字段减少数据传输/内存占用类型转换对象 → 字符串、数值、其他实体数据加工计算拼接、运算、格式化结构重组旧实体 → 新实体、匿名类区别于筛选Where是删元素Where过滤元素个数Select改变元素内容/类型三、分类示例C#7.3 可直接运行准备基础实体与测试数据usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;// 原始实体publicclassStudent{publicintId{get;set;}publicstringName{get;set;}publicintAge{get;set;}publicdecimalScore{get;set;}}classProgram{staticvoidMain(){ListStudentstuListnewListStudent{newStudent{Id1,Name张三,Age18,Score90},newStudent{Id2,Name李四,Age19,Score85},newStudent{Id3,Name王五,Age18,Score96}};// 下面依次演示各类投影用法Console.ReadLine();}}1. 提取单个字段最常用只拿出姓名把ListStudent转为Liststring// 投影只取 NameListstringnameListstuList.Select(ss.Name).ToList();Console.WriteLine(string.Join(、,nameList));// 输出张三、李四、王五2. 提取多个字段 → 匿名类不想定义新实体临时组合多个字段vartempListstuList.Select(snew{编号s.Id,姓名s.Name,分数s.Score}).ToList();foreach(varitemintempList){Console.WriteLine($编号{item.编号}姓名{item.姓名});}3. 数据计算/加工对原有字段做运算、拼接、格式化// 拼接字符串 分数换算varinfoListstuList.Select(s$姓名{s.Name}总分折合{s.Score*1.1m:F1}).ToList();foreach(varinfoininfoList){Console.WriteLine(info);}4. 转换为全新实体业务分层常用数据库实体 → 页面展示实体(VO/DTO)// 定义展示实体publicclassStudentDto{publicintStuId{get;set;}publicstringStuName{get;set;}}// 投影转换为 DTOListStudentDtodtoListstuList.Select(snewStudentDto{StuIds.Id,StuNames.Name}).ToList();5. 结合 Where 先筛选、再投影组合用法先过滤元素再转换数据// 先筛选分数88再只取姓名varhighScoreNamesstuList.Where(ss.Score88).Select(ss.Name).ToList();Console.WriteLine(string.Join( ,highScoreNames));// 输出张三 王五四、关键特点总结不修改原集合投影会生成新集合原stuList数据完全不变。改变元素类型/结构可以对象 → 字符串/数值/新对象/匿名类。延迟执行LINQ 特性Select返回IEnumerableT调用 ToList()/ToArray() 才真正执行遍历。性能场景大数据场景下投影只取必要字段大幅节省内存比全对象传递更高效。五、一句话总结投影 Select 对集合中每一项做“改造、提取、转类型”产出新集合是数据封装、视图展示、实体转换中最常用的 LINQ 操作。
http://www.zskr.cn/news/1407732.html

相关文章:

  • 基于深度学习的吸烟、喝水和打电话行为检测系统(YOLOv8+YOLO数据集+UI界面+Python项目+模型)
  • 核心图纸外发易泄露?文件安全外发管控产品推荐,合规可追溯
  • 基于调制运动模糊的车辆速度估计:WDPMVA算法与MOIM硬件设计
  • 不只是供电:深入拆解STM32项目中DCDC电源电路的7个设计细节与选型思考
  • 手把手教你用LoRa-Kit开发板+安信可小程序,5分钟搞定LoRa点对点通信测试
  • Redis五大基础数据类型命令详解与经典应用场景
  • Adobe Illustrator终极自动化工具集:25个免费脚本让设计效率飙升300%
  • AI+算法混合架构:10秒批量生成个性化宾果卡的技术实践
  • Unity小地图实战:从零到一,手把手教你打造一个可缩放、可展开的2D/3D游戏Minimap(含完整源码)
  • 为什么你的提问总被帮助中心“忽略”?揭秘ChatGPT知识库匹配逻辑与4步精准提问公式
  • 2026年 钢结构厂家/工程公司推荐榜单:辽宁/吉林钢结构施工,车间与建筑项目实力优选! - 品牌企业推荐师(官方)
  • GraphRAG【部署 01】Linux环境安装部署GraphRAG并使用Ollama本地大模型
  • 从FLV到HTML5:flv.js如何突破浏览器限制实现高效直播播放
  • 如何永久备份微信聊天记录?WeChatMsg完整数据留存方案指南
  • 个人工作室可以开通GEO优化吗
  • 拒绝浓重机器味!2026毕业论文降AI实操:打破模型底层逻辑
  • Agent 面试,项目是 20 分,讲项目是 80 分
  • GEO自然优化和付费推广区别
  • 2026西安财税咨询机构深度测评:3家主流财税对比! - 小柏云
  • 163MusicLyrics:3分钟掌握网易云和QQ音乐LRC歌词获取技巧
  • 第3讲 【大模型基础1】AI、机器学习、深度学习与大模型的关系
  • 目前口碑好的家政保洁品牌推荐
  • 别再用老掉牙的猫狗数据集了!用TensorFlow 2.1+Python 3.6,从数据清洗到模型调优的完整避坑指南
  • 2026年 大连电脑维修推荐榜:沙河口笔记本/台式机/服务器/戴尔联想惠普等品牌维修,专业高效口碑之选 - 品牌企业推荐师(官方)
  • 南沙大件搬迁怕摔?专业搬家公司防护运输更安全 - 从来都是英雄出少年
  • 视频去水印无损工具推荐:去水印后和原视频一样,2026实测最有效的方法 - 体验家
  • 【ChatGPT客户旅程地图实战指南】:20年CX专家亲授5大关键触点建模法,错过再等一年
  • 短视频团队已全面切换:ChatGPT脚本写作效能实测——人均日产能提升3.8倍,完播率平均+27.6%
  • 【限时公开】ChatGPT谜题响应率提升300%的底层协议——基于LLM推理链的6层提示压缩术
  • ChatGPT婚礼策划辅助落地全案(含提示词库+风险预警清单):已验证服务872对新人的真实数据复盘