C# 基于字符串对象列表筛选进程列表

C# 基于字符串对象列表筛选进程列表,c#,linq,C#,Linq,我有一个表示进程名称的字符串对象列表。我想通过使用我拥有的字符串对象列表来过滤正在运行的进程的集合(通过使用GetProcesses()检索)。因此,如果我想查找processes集合中运行的Sql Server进程,我将查找存储在字符串列表中的字符串名称 如何筛选进程列表以仅获取与字符串列表具有相同进程名称的进程(不同的泛型类型使其很难-无论如何,对我来说) 我正在使用.NET4.0和LINQ 谢谢这应该可以 var targetNames = new [] { "processone", "

我有一个表示进程名称的字符串对象列表。我想通过使用我拥有的字符串对象列表来过滤正在运行的进程的集合(通过使用GetProcesses()检索)。因此,如果我想查找processes集合中运行的Sql Server进程,我将查找存储在字符串列表中的字符串名称

如何筛选进程列表以仅获取与字符串列表具有相同进程名称的进程(不同的泛型类型使其很难-无论如何,对我来说)

我正在使用.NET4.0和LINQ

谢谢

这应该可以

var targetNames = new [] { "processone", "Processtwo" };

var processes = from p in Process.GetProcesses()
                where targetNames.Any(n => n == p.ProcessName)
                select p;

接近。ProcessName将不包含“.exe”,因此
targetNames
不应包含。如果OP没有使用正确的大小写,则比较应该不区分大小写:
n=>n.Equals(p.ProcessName,StringComparison.InvariantCultureInogoreCase)
。Intersect()将是比此处的.Any()更好的选择。