在数组中查找值的位置

时间:2014-03-22 21:26:16

标签: c#

我有这段代码来查找我的数组中某个值的位置:

int position = Array.IndexOf<double>(myarray, 0.03);

有没有办法让它工作,以便它给我一个小于某个值的值的位置?例如,我希望第一次出现的位置小于0.04

2 个答案:

答案 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;