我需要不断检查是否有多个进程之一正在运行。到目前为止,我已经使用了:
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/