我正在这样做,只是想知道如果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)
foreach(var process in Process.GetProcesses().Where(p=>p.ProcessName==whatever))
process.Kill();
Run Code Online (Sandbox Code Playgroud)
请记住,使用语句来执行杀死进程等操作.使用LINQ进行查询,读取值而不更改它们.
但是你的代码是完全可读的.没有充分理由我不会改变它.
在方法语法中:
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)