【问题标题】:Is there an "AllIndexesOf" method? [duplicate]是否有“AllIndexesOf”方法? [复制]
【发布时间】:2013-03-20 07:57:27
【问题描述】:

背景:

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

问题:

是否有类似 AllIndexesOf 方法返回 int[]IEnumerable<int>

【问题讨论】:

  • 为什么要关闭投票?我得到重复的选票,但为什么要关闭选票。顺便说一句,标题是如此不同,我错过了,谢谢蒂姆!
  • 反对者,请解释!
  • “我得到了重复的选票,但为什么接近投票”重复的投票接近投票。
  • 我没有投反对票,但这个问题被问了很多次,即使在略有不同的情况下。 google

标签: c# .net indexof


【解决方案1】:

没有,但您可以使用以下 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

【讨论】:

  • @ofstream,不客气
【解决方案2】:

您也可以使用Enumerable.Range

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

【讨论】:

  • 这很干净。谢谢!
猜你喜欢
  • 2020-08-03
  • 2014-03-26
  • 2012-05-02
  • 2016-03-28
  • 1970-01-01
  • 1970-01-01
  • 2013-11-01
  • 2018-08-11
  • 2015-08-20
相关资源
最近更新 更多