C# 编写下面的代码并获得以下错误
代码如下:C# 编写下面的代码并获得以下错误,c#,C#,代码如下: Console.WriteLine("------no's greater than 20 and divisible by 4 ------------"); { for (i = 0; i < numbers.Count; i++) { var no = numbers.Where(n => n >= 20 && n % 4 == 0).ToList(); Console.WriteLine(no[i]); } Console.R
Console.WriteLine("------no's greater than 20 and divisible by 4 ------------");
{
for (i = 0; i < numbers.Count; i++)
{
var no = numbers.Where(n => n >= 20 && n % 4 == 0).ToList();
Console.WriteLine(no[i]);
}
Console.ReadLine();
Console.WriteLine(“----no”大于20并可被4整除);
{
对于(i=0;in>=20&&n%4==0.ToList();
控制台写入线(编号[i]);
}
Console.ReadLine();
获取以下错误:
mscorlib.dll中发生类型为“System.ArgumentOutOfRangeException”的未处理异常。其他信息:索引超出范围。必须为非负且小于集合的大小
您正试图从新列表中获取项目
no
,该项目(可能)包含的元素少于源集合number
。此外,您还在周期的每个迭代中筛选无效的源集合
如果要筛选和打印符合条件的numbers
集合中的数字,则应检查循环中numbers[i]
的此条件:
Console.WriteLine("------no's greater than 20 and divisible by 4 ------------");
for (i = 0; i < numbers.Count; i++)
{
if(numbers[i] >= 20 && numbers[i] % 4 == 0)
Console.WriteLine(numbers[i]);
}
Console.ReadLine();
您正试图从新列表中获取项目
no
,该项目(可能)包含的元素少于源集合number
。此外,您还在周期的每个迭代中筛选无效的源集合
如果要筛选和打印符合条件的numbers
集合中的数字,则应检查循环中numbers[i]
的此条件:
Console.WriteLine("------no's greater than 20 and divisible by 4 ------------");
for (i = 0; i < numbers.Count; i++)
{
if(numbers[i] >= 20 && numbers[i] % 4 == 0)
Console.WriteLine(numbers[i]);
}
Console.ReadLine();
Where
过滤器返回所有匹配号码的列表,该列表小于numbers
列表。您需要在循环之前获取匹配号码
var no = numbers.Where(n => n >= 20 && n % 4 == 0).ToList();
for (int i = 0; i < no.Count; i++)
{
Console.WriteLine(no[i]);
}
Where
过滤器返回所有匹配号码的列表,该列表小于numbers
列表。您需要在循环之前获取匹配号码
var no = numbers.Where(n => n >= 20 && n % 4 == 0).ToList();
for (int i = 0; i < no.Count; i++)
{
Console.WriteLine(no[i]);
}
我想你需要这个代码,我更喜欢放在这里。我想这与你的问题有关。这是一个列表
List<int> numbers = new List<int> { 30, 40 };
List<int> tem = new List<int>();
numbers.Where(w => w >= 20 && w % 4 == 0).ToList().ForEach(fn =>
{
tem.Add(fn);
Console.WriteLine(fn);
});
列表编号=新列表{30,40};
List tem=新列表();
其中(w=>w>=20&&w%4==0).ToList().ForEach(fn=>
{
tem.Add(fn);
控制台写入线(fn);
});
我想你需要这个代码,我更喜欢放在这里。我想这与你的问题有关。这是一个列表
List<int> numbers = new List<int> { 30, 40 };
List<int> tem = new List<int>();
numbers.Where(w => w >= 20 && w % 4 == 0).ToList().ForEach(fn =>
{
tem.Add(fn);
Console.WriteLine(fn);
});
列表编号=新列表{30,40};
List tem=新列表();
其中(w=>w>=20&&w%4==0).ToList().ForEach(fn=>
{
tem.Add(fn);
控制台写入线(fn);
});
您应该调试它并查看错误发生的位置。这是一个非常简单的错误,我可以告诉您如何修复它。但我认为,您将通过调试了解更多信息。您过滤数字数组,因此过滤列表的长度可能比未过滤列表的长度小。但您循环未过滤列表的长度=>超出范围…tot欢迎来到堆栈溢出!给你一个很好的答案,如果你浏览一下,它可能对我们有帮助。如果你能提供一个帮助,那么它也可能是有用的。欢迎来到StAdvExcel。如果其中一个答案帮助了你,你可以考虑。这显示了这个职位的未来访问者,它有一个工作解决方案。您应该调试它并查看错误发生的位置。这是一个非常简单的错误,我可以向您展示如何修复它。但我认为,您将通过调试了解更多信息。您过滤数字数组,因此过滤列表的长度可能比未过滤列表的长度小。但您循环未过滤列表的长度=>超出范围…完全超出范围欢迎来到堆栈溢出!给你一个很好的答案,如果你浏览一下,它可能会对我们有所帮助。如果你能提供A,它也可能是有用的。欢迎来到StAdvExcel。如果其中一个答案帮助了你,你可以考虑。这显示了这个职位的未来访问者,它有一个工作解决方案。快乐编码