gpt4 book ai didi

c# - 如何在 lambda 表达式或 linq 中编写以下代码?

转载 作者:太空宇宙 更新时间:2023-11-03 19:52:36 25 4
gpt4 key购买 nike

我只想知道如何在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com