C#3.0新增功能09 LINQ 基础03 LINQ 和泛型类型
LINQ 查询基于 .NET Framework 版本 2.0 中引入的泛型类型。 无需深入了解泛型即可开始编写查询。 但是,可能需要了解 2 个基本概念:
-
创建泛型集合类(如 List<T>)的实例时,需将“T”替换为列表将包含的对象类型。 例如,字符串列表表示为
List<string>
,Customer
对象列表表示为List<Customer>
。泛型列表属于强类型,与将其元素存储为 Object 的集合相比,泛型列表具备更多优势。 如果尝试将Customer
添加到List<string>
,则会在编译时收到错误。 泛型集合易于使用的原因是不必执行运行时类型转换。 -
IEnumerable<T> 是一个接口,通过该接口,可以使用
foreach
语句来枚举泛型集合类。 泛型集合类支持 IEnumerable<T>,正如非泛型集合类(如 ArrayList)支持 IEnumerable。
有关泛型的详细信息,请参阅泛型。
IEnumerable<Customer>
的查询变量时,这只意味着执行查询时,该查询将生成包含零个或多个 Customer
对象的序列。IEnumerable<Customer> customerQuery = from cust in customers where cust.City == "London" select cust; foreach (Customer customer in customerQuery) { Console.WriteLine(customer.LastName + ", " + customer.FirstName); }
有关详细信息,请参阅 LINQ 查询操作中的类型关系。
如果愿意,可以使用 var 关键字来避免使用泛型语法。 var
关键字指示编译器通过查看在 from
子句中指定的数据源来推断查询变量的类型。 以下示例生成与上例相同的编译代码:
var customerQuery2 = from cust in customers where cust.City == "London" select cust; foreach(var customer in customerQuery2) { Console.WriteLine(customer.LastName + ", " + customer.FirstName); }
变量的类型明显或显式指定嵌套泛型类型(如由组查询生成的那些类型)并不重要时,var
关键字很有用。 通常,我们建议如果使用 var
,应意识到这可能使他人更难以理解代码。有关详细信息,请参阅隐式类型局部变量。
成在管理,败在经验;嬴在选择,输在不学! 贵在坚持!
个人作品
BIMFace.SDK.NET
开源地址:https://gitee.com/NAlps/BIMFace.SDK
系列博客:https://www.cnblogs.com/SavionZhang/p/11424431.html
系列视频:https://www.cnblogs.com/SavionZhang/p/14258393.html
技术栈
1、Visual Studio、.NET Core/.NET、MVC、Web API、RESTful API、gRPC、SignalR、Java、Python
2、jQuery、Vue.js、Bootstrap、ElementUI
3、数据库:分库分表、读写分离、SQLServer、MySQL、PostgreSQL、Redis、MongoDB、ElasticSearch、达梦DM
4、架构:DDD、ABP、SpringBoot、jFinal
5、环境:跨平台、Windows、Linux、Nginx
6、移动App:Android、IOS、HarmonyOS、微信小程序、钉钉、uni-app、MAUI
分布式、高并发、云原生、微服务、Docker、CI/CD、DevOps、K8S;Dapr、RabbitMQ、Kafka、RPC、Elasticsearch。
欢迎关注作者头条号 张传宁IT讲堂,获取更多IT文章、视频等优质内容。
出处:www.cnblogs.com/SavionZhang
作者:张传宁 技术顾问、培训讲师、微软MCP、系统架构设计师、系统集成项目管理工程师、科技部创新工程师。
专注于企业级通用开发平台、工作流引擎、自动化项目(代码)生成器、SOA 、DDD、 云原生(Docker、微服务、DevOps、CI/CD);PDF、CAD、BIM 审图等研究与应用。
多次参与电子政务、图书教育、生产制造等企业级大型项目研发与管理工作。
熟悉中小企业软件开发过程:可行调研、需求分析、架构设计、编码测试、实施部署、项目管理。通过技术与管理帮助中小企业实现互联网转型升级全流程解决方案。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如有问题,可以通过邮件905442693@qq.com联系。共同交流、互相学习。
如果您觉得文章对您有帮助,请点击文章右下角【推荐】。您的鼓励是作者持续创作的最大动力!