• Linq之Linq to Objects


    目录

    写在前面

    系列文章

    linq to objects

    总结

    写在前面

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

    系列文章

    Linq之Lambda表达式初步认识

    Linq之Lambda进阶

    Linq之隐式类型、自动属性、初始化器、匿名类

    Linq之扩展方法

    Linq之Expression初见

    Linq之Expression进阶

    Linq之Expression高级篇(常用表达式类型)

    Linq之常见关键字

    Linq之延迟加载特性

    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         /// <summary>
    18         /// 获得文件名路径
    19         /// </summary>
    20         /// <param name="strPath"></param>
    21         /// <param name="strExtention"></param>
    22         static IEnumerable<string> GetFileNames(string strPath, string strExtention)
    23         {
    24             DirectoryInfo dir = new DirectoryInfo(strPath);
    25             IEnumerable<System.IO.FileInfo> files = dir.GetFiles("*.*", SearchOption.AllDirectories);
    26             //linq查询
    27             var result = from file in files
    28                          where file.Extension == strExtention
    29                          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

  • 相关阅读:
    软件架构感悟.
    浏览器缓存技术
    as到底干嘛了???
    关于WebForm开发问题(给新手的建议)
    疑难问题ASP.NET
    破解hash算法.高手请进,求解.
    (MVC和JVPL模式)Moon.Web架构谈
    Moon.NET框架架构及介绍
    调用API设置安卓手机的Access Point
    gtShell 为你常用的目录建立标签并快速跳转
  • 原文地址:https://www.cnblogs.com/wolf-sun/p/4275888.html
Copyright © 2020-2023  润新知