您如何/可以将其重写为Linq?

RTF*_*TFS 4 c# linq

我正在这样做,只是想知道如果Linq可以用来重写这个,我对所有这些都是新手?

private void checkacrobat()
{
    Process[] prs = Process.GetProcesses();
    foreach(Process pr in prs)
    {
         if(pr.ProcessName == "****ProcessName")
              pr.Kill();
    }
}
Run Code Online (Sandbox Code Playgroud)

Eri*_*ert 7

foreach(var process in Process.GetProcesses().Where(p=>p.ProcessName==whatever))
    process.Kill();
Run Code Online (Sandbox Code Playgroud)

请记住,使用语句执行杀死进程等操作.使用LINQ进行查询,读取值而不更改它们.

但是你的代码是完全可读的.没有充分理由我不会改变它.


Ani*_*Ani 5

在方法语法中:

var processesToBeKilled = Process.GetProcesses()
                                 .Where(pr => pr.ProcessName == "****ProcessName");

foreach(var process in processesToBeKilled)
   process.Kill();
Run Code Online (Sandbox Code Playgroud)

在查询语法中:

var processesToBeKilled = from pr in Process.GetProcesses()
                          where pr.ProcessName == "****ProcessName"
                          select pr;

foreach(var process in processesToBeKilled)
   process.Kill();
Run Code Online (Sandbox Code Playgroud)

专用方法:

这里真的不需要LINQ; 已经有了方便的 Process.GetProcessesByName方法:

var processesToBeKilled = Process.GetProcessesByName("****ProcessName");

foreach(var process in processesToBeKilled)
   process.Kill();
Run Code Online (Sandbox Code Playgroud)