我用当前活动用户的正在运行的进程填充ListBox(listRAM):

Process[] RAM = Process.GetProcesses();
Process[] sameAsthisSession = (from c in RAM where c.SessionId == Process.GetCurrentProcess().SessionId select c).ToArray();

foreach (var p in sameAsthisSession)
{
   listRAM.Items.Add(p.ProcessName);
}

listRAM.Sorted = true;


这些过程将按listRAM.Sorted = true;按字母顺序排序。

我只是很好奇,是否可以按内存使用量对它们进行排序,即获取每个进程的内存使用率并将它们通过循环添加到列表框中?

最佳答案

请尝试以下操作:

var RAM = Process.GetProcesses();
var procs = RAM.Where(x => x.SessionId == Process.GetCurrentProcess().SessionId)
               .OrderByDescending(x => x.PrivateMemorySize64)
               .ToList();

foreach (var p in procs)
{
    listRAM.Items.Add(p.ProcessName);
}

09-12 10:15