2017-02-10 30 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