我需要不断检查是否有多个进程之一正在运行。到目前为止,我已经使用了:

Process[] Processes = Process.GetProcesses();


获取当前正在运行的进程。我有一个字符串数组,其中包含我要确保在继续之前未运行的进程列表:

string[] ProcessesToCheck = new string[] {"Chartvue",
        "collvue"
        ,"damage"
        ,"Datagen"
        ,"datagenlegacy"
        ,"FAST_SACS"
        ,"hullmesher"
        ,"hullmodeler"
        ,"ifatigue"};


问题是,如何检查Processes的所有ProcessName成员不包含ProcessesToCheck的任何成员?

最佳答案

您可以将进程名称放入哈希集中(以便快速查找),然后使用Any方法检查ProcessesToCheck中是否存在任何进程名称。

var processNames = new HashSet<string>(Processes.Select(p => p.ProcessName));
bool isExists = ProcessesToCheck.Any(processNames.Contains);

关于c# - 如何使用Linq检查数组的成员是否与另一个数组的任何成员匹配?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24800856/

10-16 08:53