C# 获取报价(&Q);索引超出了数组的边界。”;调用EnvDTE80.ErrorItems.item()时
我试图获取Visual Studio 2015错误列表窗口中的所有错误,但在尝试通过错误访问ErrorItem时,我获取了一个索引越界异常。Item(I)调用。我错过了任何演员吗C# 获取报价(&Q);索引超出了数组的边界。”;调用EnvDTE80.ErrorItems.item()时,c#,visual-studio,envdte,C#,Visual Studio,Envdte,我试图获取Visual Studio 2015错误列表窗口中的所有错误,但在尝试通过错误访问ErrorItem时,我获取了一个索引越界异常。Item(I)调用。我错过了任何演员吗 EnvDTE80.DTE2 dte2 = ServiceProvider.GetService(typeof(EnvDTE.DTE)) as DTE2); ErrorItems errors = dte2.ToolWindows.ErrorList.ErrorItems; for (int i = 0; i <
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);
}
EnvDTE80.DTE2 DTE2=ServiceProvider.GetService(typeof(EnvDTE.DTE))作为DTE2);
ErrorItems errors=dte2.ToolWindows.ErrorList.ErrorItems;
for(int i=0;i
所有列表或数组的.Count()
方法都从1开始,而IT世界中的索引总是从0开始。因此,在最后,您的计数将达到一个不在索引中的数字
所以,试着用比卢·基德的建议减去1
编辑
好吧,算了吧。我认为这是一个脑力障碍。但我认为删除这个答案是没有必要的,因为我可以看出,贝维勒的建议是错误的
科学
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]);
}
}
static void Main(字符串[]args)
{
List tmpList=新列表();
对于(int i=0;i<10;i++)
{
Debug.WriteLine(“列表项编号”+i);
tmpList.添加(“项目”+i);
}
Debug.WriteLine(“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu”);
Debug.WriteLine(“列表计数:+tmpList.Count());
Debug.WriteLine(“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu”);
对于(int i=0;i
调试:
清单项目编号0
清单项目1
第二项
第三项
清单项目4
清单项目5
清单项目6
第七项
清单项目8
清单项目9
名单数目:10
项目0 项目1 项目2 项目3 项目4 项目5 项目6 项目7 项目8 项目9
ErrorItems.Item
方法似乎需要一个绝对索引,从1开始,因此将循环更改为:
for (int i = 1; i <= errors.Count; i++)
for(int i=1;我已经调试过了?如果你做了i
?循环没有处理好吗?因为它是i
?有15个错误,循环迭代到i=14
@Sami…是的。很尴尬。很高兴我能帮上忙。