Anu*_*uya 4 c# comparison arraylist
我有两个arraylist.即ExistingProcess和CurrentProcess.
ExistingProcess arraylist包含此应用程序启动时运行的进程列表.
CurrentProcess arraylist位于一个线程中,用于始终获取系统中运行的进程.
每当currentProcess arraylist运行当前进程时,我想与ExistingProcess arraylist进行比较并显示在消息框中,如:
缺少进程:NotePad [如果记事本已关闭且应用程序已启动]新进程:MsPaint [如果MSPaint在应用程序启动后启动]
基本上这是两个arraylist的比较,以找出我的c#应用程序启动后启动的新进程和进程关闭.
希望我的问题很明确.需要帮助.
您可以使用LINQ Except.
除了产生两个序列的集合差异.
样品:
http://msdn.microsoft.com/en-us/library/bb300779.aspx
http://msdn.microsoft.com/en-us/library/bb397894%28VS.90%29.aspx
用来说明这个想法的代码......
static void Main(string[] args)
{
ArrayList existingProcesses = new ArrayList();
existingProcesses.Add("SuperUser.exe");
existingProcesses.Add("ServerFault.exe");
existingProcesses.Add("StackApps.exe");
existingProcesses.Add("StackOverflow.exe");
ArrayList currentProcesses = new ArrayList();
currentProcesses.Add("Games.exe");
currentProcesses.Add("ServerFault.exe");
currentProcesses.Add("StackApps.exe");
currentProcesses.Add("StackOverflow.exe");
// Here only SuperUser.exe is the difference... it was closed.
var closedProcesses = existingProcesses.ToArray().
Except(currentProcesses.ToArray());
// Here only Games.exe is the difference... it's a new process.
var newProcesses = currentProcesses.ToArray().
Except(existingProcesses.ToArray());
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4555 次 |
最近记录: |