我只想知道如何在 lambda 表达式或 linq 中编写以下代码。知道的请回答。
Process[] runingProcess = Process.GetProcesses();
ManagementObjectCollection moReturn;
ManagementObjectSearcher moSearch;
void func()
{
moSearch = new ManagementObjectSearcher("Select * from Win32_Product");
moReturn = moSearch.Get();
foreach (ManagementObject mo in moReturn)
{
foreach (var process in Process.GetProcessesByName(mo["Name"].ToString()))
{
process.Kill();
}
}
}
最佳答案
与其他答案不同,我认为使用 .ToList()
和 .ForEach(...)
与 LINQ 相反。使用这些关键字后,您的 LINQ 查询就会结束。特别是 .ForEach()
,因为 .ForEach(...)
的目的是 cause a side-effect , LINQ 用于查询。
我的版本是:
// Query for processes to kill
var data = new ManagementObjectSearcher("Select * from Win32_Product")
.Get()
.Cast<ManagementObject>()
.SelectMany(mo => Process.GetProcessesByName(mo["Name"].ToString()));
// Kill the processes
foreach (var item in data) {
item.Kill();
}
关于c# - 如何在 lambda 表达式或 linq 中编写以下代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36929583/