1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)


{
    List<string> ul = new List<string>();
    Process[] procs = Process.GetProcesses();
    int u = 0;

    foreach (Process proc in procs)
    {
        ul[u] = proc.ProcessName;
        u++;
    }

}
}
}

每次执行循环时,我都想将每个进程名称移动到我的数组列表中,但我遇到了出站异常。请提供一些示例代码。提前致谢...

4

2 回答 2

4

您无法访问 List 中尚未设置的元素。使用 .Add() 函数。

foreach (Process proc in procs)
{
    ul.Add(proc.ProcessName);
}
于 2012-07-11T16:25:20.757 回答
2

尝试使用 .Add() 函数,如下所示:

        static void Main(string[] args)
        {
            List<string> ul = new List<string>();

            foreach (Process proc in Process.GetProcesses())
            {
                ul.Add(proc.ProcessName);
            }
        }

List<> 创建时具有默认大小,并且在您的代码中添加元素直到该大小已满(此时下一个“插入”失败。add() 方法检查此大小限制是否不再足够,并在需要时增加列表的大小。

此代码还消除了对几个变量的需要。

于 2012-07-11T16:26:33.607 回答