我有这段代码来查找我的数组中某个值的位置:
int position = Array.IndexOf<double>(myarray, 0.03);
有没有办法让它工作,以便它给我一个小于某个值的值的位置?例如,我希望第一次出现的位置小于0.04
答案 0 :(得分:7)
您可以使用Array.FindIndex
搜索与指定谓词定义的条件匹配的元素,并返回Array或其中一部分中第一个匹配项的从零开始的索引。
int position = Array.FindIndex(myarray, n => n < 0.04)
答案 1 :(得分:4)
您可以使用LINQ:
int position = myArray.Select((v, index) => new { v, index })
.First(x => x.v < 0.03)
.index;
当没有符合条件的元素时,它会抛出异常。
要获取默认值而不是例外,请使用FirstOrDefault
:
var item = myArray.Select((v, index) => new { v, index })
.FirstOrDefault(x => x.v < 0.03);
var position = item == null ? -1 : item.index;