2017-02-10 57 views
1

我試圖獲取Visual Studio 2015錯誤列表窗口中的所有錯誤,但我試圖通過errors.Item(i)訪問ErrorItem時得到一個索引超出綁定異常,呼叫。我是否錯過任何演員?獲取「索引超出數組範圍」。雖然調用EnvDTE80.ErrorItems.item()

EnvDTE80.DTE2 dte2 = ServiceProvider.GetService(typeof(EnvDTE.DTE)) as DTE2); 
ErrorItems errors = dte2.ToolWindows.ErrorList.ErrorItems; 
for (int i = 0; i < errors.Count; i++) 
{ 
    ErrorItem item = errors.Item(i); 
} 
+0

你有調試嗎?如果你做'我

回答

2

ErrorItems.Item方法似乎需要一個絕對指標,從1開始,那麼改變你的循環來:

for (int i = 1; i <= errors.Count; i++) 

然後它應該工作。

+0

太棒了! 。它的工作 謝謝 – vrnithinkumar

+0

很高興我能幫到你。 – Sami

0

那麼所有列出的.Count()方法或數組從1開始,而在IT世界指數總是會從0開始。所以在最後,你數將達到多少,將不會在你的索引中。

所以儘量BviLLe_Kid的建議和減去1

編輯

好了忘了。我認爲那是一個大腦混亂。但我認爲刪除這個答案並不是必要的,因爲我可以告訴BviLLe_Kid建議是錯誤的。

科學

static void Main(string[] args) 
    { 
     List<string> tmpList = new List<string>(); 
     for (int i = 0; i < 10; i++) 
     { 
      Debug.WriteLine("List Item No" + i); 
      tmpList.Add("Item " + i); 
     } 
     Debug.WriteLine("_____________"); 
     Debug.WriteLine("List Count: " +tmpList.Count()); 
     Debug.WriteLine("_____________"); 
     for (int i = 0; i < tmpList.Count(); i++) 
     { 
       Debug.WriteLine(tmpList[i]); 
     } 
    } 

調試:

貨品NO0

列表項目1號

貨品NO2

貨品NO3

列表項4號

貨品5號

貨品NO6

貨品7號

貨品NO8

貨品NO9


列表計數:10


項0

項目1

項目2

項目3

項目4

項目5

項目6

項目7

項目8

項目9

+0

循環沒有照顧嗎?既然它是'我 Sami

+0

@Sami ...是的。尷尬。 – Cataklysim