【发布时间】:2019-04-27 10:48:32
【问题描述】:
我正在尝试学习如何使用 lambda,在这段代码中,我试图获取数组中可用值的索引,但它只返回值 5 和 8 以及其他值不断投掷IndexOutOfRangeException!
int[] nums = { 2, 3, 5, 8, 9 };
int rez = nums.Where(i => nums[i] == 2).FirstOrDefault();
Console.WriteLine(rez);
请告诉我在尝试检索“索引”返回值时会发生什么情况? 提前致谢。
【问题讨论】:
-
您了解“IndexOutOfRange”执行的含义吗?这意味着
nums[i]中使用的i不是num数组的有效索引。问问自己:num数组的有效索引范围是多少? -
当然可以。在这种情况下,2 应该是 0。出来了吗?
-
查找
Where的文档。它不会做你认为它会做的事情...... (docs.microsoft.com/en-gb/dotnet/api/…) -
但是“i”不应该计算为 0 吗?
-
再次查看文档以了解它的作用。 不要坚持盲目猜测......
标签: c# linq lambda return indexoutofboundsexception