Itay.B
Itay.B

Reputation: 4119

process.getprocessesbyname()

I would like to use this function in C#, but I need to get 2 types of processes. Is it possible to do something like this: process.getprocessesbyname("process1", "process2");

How can I get the instances of 2 processes with different names?

TY

Upvotes: 1

Views: 4814

Answers (3)

Darin Dimitrov
Darin Dimitrov

Reputation: 1039468

IEnumerable<Process> processes =
    new[] { "process1", "process2" }
    .SelectMany(Process.GetProcessesByName);

Upvotes: 3

Fredrik M&#246;rk
Fredrik M&#246;rk

Reputation: 158389

You can use the LINQ Concat method to concatenate the lists:

var processes = Process.GetProcessesByName("devenv")
    .Concat(Process.GetProcessesByName("notepad"));

Upvotes: 2

simendsjo
simendsjo

Reputation: 4749

Use a loop:

static void Main(string[] args)
{
    var processes = GetProcesses(new[] { "name1", "name2", "explorer"});
}

public static IList<Process> GetProcesses(string[] processNames)
{
    var processes = new List<Process>(processNames.Length);
    foreach (var processName in processNames)
    {
        var namedProcesses = Process.GetProcessesByName(processName);
        processes.AddRange(namedProcesses);
    }

    return processes;
}

Upvotes: 2

Related Questions