有“AllIndexesOf”方法吗?

时间:2013-03-20 07:57:27

标签: c# .net indexof

背景

我正在研究评估员(我知道有可用的解决方案,但我需要一些我需要自己实现的功能)。我需要在评估中找到所有出现的括号。但是,为此,我需要括号中的所有索引。

问题:

是否有像AllIndexesOf方法那样返回int[]IEnumerable<int>

2 个答案:

答案 0 :(得分:8)

没有,但您可以使用以下LINQ查询获取所有索引。

int number  = 10;
int[] intArray = new[] { 1, 32, 10, 5, 65, 6, 10, 10 };
var allIndexes = intArray.Select((r,i)=> new {value = r, index = i})
                         .Where(r=> r.value == number)
                         .Select(r=> r.index);

allIndexes将包含2,6 and 7

答案 1 :(得分:4)

您也可以使用Enumerable.Range

 var indexes = Enumerable.Range(0, list.Count)
                         .Where(index => list[index] == yourValue);