2012-07-11 67 views
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++; 
    } 

} 
} 
} 

我想將每個進程名稱移動到我的arraylist中,每次循環都執行但我得到的outofbound異常。請提供一些示例代碼。在此先感謝...參數超出範圍將元素插入列表時出現異常

回答

2

嘗試使用。新增()函數,就像這樣:

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

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

的List <>創建時,有一個默認的大小,並在代碼中的元素被添加,直到大小爲全(在這一點上,下一個'插入'失敗,add()方法檢查這個大小限制是否不夠,並在需要時增加列表的大小。

這段代碼也消除了需要一對你的變量。

+0

您的回答非常有用謝謝.... – Ulaga 2012-07-11 16:36:32

+0

沒問題。請不要忘記將其中一個答案標記爲正確,以防其他人在稍後尋找相同的東西。 :-) – KingCronus 2012-07-11 19:54:41

4

您不能訪問List中尚未設置的元素。使用.Add()函數。

foreach (Process proc in procs) 
{ 
    ul.Add(proc.ProcessName); 
} 
+0

感謝您的回覆 – Ulaga 2012-07-11 16:36:52