2009-10-05 2 views
0

У меня есть ArrayList, который имеет некоторые имена процессов, как «Блокнот», «MSPaint»Сравнивая два ArrayList в C Применение # Windows

Я хочу, чтобы проверить значения выше ArrayList против следующего:

процесса [ ] Procs = Process.GetProcesses();

Если процесс «Блокнот» отсутствует в Procs, то я хочу использовать это значение для дальнейших требований.

Как найти значение моего arraylist, которого нет в Procs ??

ответ

2

Есть умные ответы, но я опубликую наивные один, потому что его легче понять

List<string> myprocs; // populated with process names 
Process[] Procs = Process.GetProcesses(); 
foreach(Process proc in Procs) 
{ 
    if(myprocs.Contains(proc.ProcessName)) 
    { 
    myprocs.Remove(proc.ProcessName); 
    } 
} 
// whatever that is left over in myprocs at this point is your remainder process names. 
2

1) Перейдите по списку один-на-один с помощью ArrayList.Contains

2) Если LINQ является доступный использовать установленную разницу: Except()

0

Или вы можете использовать метод Except, предоставляемый LINQ. Но если вы используете Arraylist вместо List <>, я предполагаю, что вы используете .NET 1.

Смежные вопросы