欢迎投稿

今日深度:

LINQ——语言级集成查询入门指南(1)(3)

显示一列文件

在这个例子中,将使用LINQ查询一个目录中以某个特定名字开始的文件,重复一篇,我是随机选择的目录和文件名,你可能想要修改查询语句中的目录和文件名以适应你的环境。

using System;
using System.Collections.Generic;
using System.Linq;

namespace LINQIntro
{
   class Program
   {
      static void Main(string[] args)
      {
         Program.ShowFiles();
      }

      public static void ShowFiles()
      {
         //指定特定目录
         System.IO.DirectoryInfo dirInfo = new
            System.IO.DirectoryInfo(
            "C:\\Program Files\\Microsoft Visual Studio 9.0");

         //找出目录中的文件并选中它
         var directoryList =
            from f in dirInfo.GetFiles("*.*",
              System.IO.SearchOption.AllDirectories)
            where f.Name.StartsWith("re")
            select f;

         //在终端显示选中的记录
         foreach (var row in directoryList)
         {
            Console.WriteLine(row);
         }
         Console.ReadLine();
      }
   }
}

显示运行中的进程

在这个例子中,使用LINQ列出本地PC上正在运行的进程。

using System;
using System.Collections.Generic;
using System.Linq;

namespace LINQIntro
{
   class Program
   {
      static void Main(string[] args)
      {
         Program.ShowProcesses();
      }

      public static void ShowProcesses()
      {
         //选择进程列表并计划输出
         var processes = from p in
            System.Diagnostics.Process.GetProcesses()
               orderby p.ProcessName
               select new {
                  p.ProcessName, p.Id, p.WorkingSet64,
                  p.Threads, p.HandleCount };

         //在终端显示选择的记录
         foreach (var row in directoryList)
         {
            Console.WriteLine(row);
         }
         Console.ReadLine();
      }
   }
}

访问应用程序日志文件

在这个例子中,使用LINQ从应用程序日志中获取数据,可以在日志中搜索包含某个特定消息的错误日志,我从我本地计算机的事件日志中随机选了一个错误进行搜索,你可能想要调整查询语句以适应你的本地事件日志,对于那些不相信能用LINQ查询日志的人来说,这个例子向你展示了LINQ的能力和价值。

using System;
using System.Collections.Generic;
using System.Linq;

namespace LINQIntro
{
   class Program
   {
      static void Main(string[] args)
      {
         Program.ShowEventLog();
      }

      public static void ShowEventLog()
      {
         //加入应用程序事件日志
         System.Diagnostics.EventLog myLog =
            new System.Diagnostics.EventLog();
         myLog.Log = "Application";

         //使用terminated为关键字查询错误记录,你可能想要调整EventLogEntryType和
        //消息以适应你本地的事件日志,注意自定义对象是如何形成的。
         var logEntries =
            from System.Diagnostics.EventLogEntry e in
               myLog.Entries
            where e.EntryType ==
               System.Diagnostics.EventLogEntryType.Error &&
               e.Message.Contains("terminated")
            select new {
               e.Source, e.InstanceId, e.Message,
               e.TimeGenerated };

         //显示选择的记录
         foreach (var row in logEntries)
         {
            Console.WriteLine(row);
         }
         Console.ReadLine();
      }
   }

小结

本文对LINQ是什么不是什么做了一个简要的概述,同时,你也看到了LINQ开启了新的语言特性,并通过一些例子对LINQ语法进行了介绍,希望本文给你带来了有用的知识,使你能在将来的工作中更好地运用LINQ。


www.htsjk.Com true http://www.htsjk.com/shujukujc/19168.html NewsArticle 显示一列文件 在这个例子中,将使用LINQ查询一个目录中以某个特定名字开始的文件,重复一篇,我是随机选择的目录和文件名,你可能想要修改查询语句...
相关文章
    暂无相关文章
评论暂时关闭