如何按名称对流程进行排序?

时间:2017-04-12 20:58:39

标签: c#

这是我的代码,我想知道如何将其放入按字母顺序排列的列表中。谢谢!

Process[] proc;

void GetAllProcess()
{
    proc = Process.GetProcesses();
    listBox1.Items.Clear();
    foreach (Process p in proc)
    {
        listBox1.Items.Add(p.ProcessName);
    }
}


private void Form1_Load(object sender, EventArgs e)
{
    GetAllProcess();
}

2 个答案:

答案 0 :(得分:2)

LINQ使得处理事物集合变得非常容易,并且它具有OrderBy选项。订购后,您可以再次使用LINQ到Select每个进程名称,然后使用这些名称并使用Select将它们插入到列表中。

proc = Process.GetProcesses()
    .OrderBy(p => p.ProcessName)
    .ToArray();
proc.Select(p => p.ProcessName)
    .Select(listBox1.Items.Add);

答案 1 :(得分:1)

请检查一下,我已经修改了你的功能:

void GetAllProcess()
{
    proc = Process.GetProcesses();
    listBox1.Items.Clear();
    foreach (Process p in proc.OrderBy(m=>m.ProcessName))
    {
        listBox1.Items.Add(p.ProcessName);
    }
}