博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linq之Linq to Objects
阅读量:5942 次
发布时间:2019-06-19

本文共 2022 字,大约阅读时间需要 6 分钟。

目录

写在前面

上篇文章介绍了linq的延迟加载特性的相关内容,从这篇文章开始将陆续介绍linq to Objects,linq to xml,linq to sql等内容。

系列文章

linq to objects

术语“LINQ to Objects”是指直接对任意 IEnumerable 或 IEnumerable<T> 集合使用 LINQ 查询,无需使用中间 LINQ 提供程序或 API,例如 LINQ to SQL [LINQ to SQL] 或 LINQ to XML。 可以使用 LINQ 来查询任何可枚举的集合,例如 List<T>、Array 或 Dictionary<TKey, TValue>。 该集合可以是用户定义的集合,也可以是由 .NET Framework API 返回的集合。

从根本上说,“LINQ to Objects”表示一种新的处理集合的方法。 采用旧方法,你必须编写指定如何从集合检索数据的复杂的 foreach 循环。 而采用 LINQ 方法,你只需编写描述要检索的内容的声明性代码。

另外,与传统的 foreach 循环相比,LINQ 查询具有三大优势:

1.它们更简明、更易读,尤其在筛选多个条件时。

2.它们使用最少的应用程序代码提供强大的筛选、排序和分组功能。

3.无需修改或只需做很小的修改即可将它们移植到其他数据源。

                                         -----MSDN

在前面文章中,使用linq查询ArrayList。

另外,linq在字符串,反射,文件目录操作中作为查询也是非常方便的。下面看一个例子,查询某个目录下所有扩展名为“.rar”的文件。

1 using System.IO; 2 using System.Linq; 3 namespace Wolfy.Linq2ObjectsDemo 4 { 5     class Program 6     { 7         static void Main(string[] args) 8         { 9             var fileNames = from n in GetFileNames(@"F:\", ".rar")10                             select Path.GetFileName(n);11             foreach (var item in fileNames)12             {13                 Console.WriteLine(item);14             }15             Console.Read();16         }17         /// 18         /// 获得文件名路径19         /// 20         /// 21         /// 22         static IEnumerable
GetFileNames(string strPath, string strExtention)23 {24 DirectoryInfo dir = new DirectoryInfo(strPath);25 IEnumerable
files = dir.GetFiles("*.*", SearchOption.AllDirectories);26 //linq查询27 var result = from file in files28 where file.Extension == strExtention29 select file.FullName;30 return result;31 }32 }33 }

输出

总结

linq to objects内容比较简单,也许你在项目中一直在用,就不再多说了。如果想了解更多,可以查看下面的参考中的内容。

参考

https://msdn.microsoft.com/zh-cn/library/cc981895.aspx

https://msdn.microsoft.com/zh-cn/library/bb546159.aspx

https://msdn.microsoft.com/zh-cn/library/bb397937.aspx

转载于:https://www.cnblogs.com/wolf-sun/p/4275888.html

你可能感兴趣的文章
OC语言的代码保护
查看>>
IBM磁带库中更换磁带的步骤
查看>>
tomcat启动报错
查看>>
mybatis3单表增删改查(二)——注解方式
查看>>
【Linux基础】作业二
查看>>
SQL0332N 不支持从源代码页 "XXXX" 到目标代码页 "XXXX"
查看>>
【存储过程】从数据库中读取数据保存到文件中
查看>>
购华为第1书,写书评赢大奖
查看>>
Linux系统程序包管理工具 RPM
查看>>
朱翊:从鼎级云珍冰箱看卡萨帝的百年品牌逻辑
查看>>
进军“手机照相馆”:京东要和3C厂商干什么?
查看>>
多数大数据项目都以失败而告终的原因
查看>>
再谈MySQL JSON数据类型
查看>>
单色打印
查看>>
一生只见一次的大彗星今天来了!
查看>>
设置root密码
查看>>
SQLPLUS SPOOL命令使用详解
查看>>
成为DBA的艰辛之路————需要掌握一笔不小的知识
查看>>
根据端口 杀进程
查看>>
2、EVE-NG镜像导入(Dynamipshe和IOL)
查看>>