4

バックグラウンド:

私はエバリュエーターに取り組んでいます (利用可能なソリューションがあることは知っていますが、自分で実装する必要があるいくつかの機能が必要です)。評価で出現するすべての開き括弧を見つける必要があります。ただし、そのためには、ブラケットのすべてのインデックスが必要です。

質問:

int[]、またはを返す AllIndexesOf メソッドのようなものはありますかIEnumerable<int>?

4

2 に答える 2

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

于 2013-03-20T07:59:11.017 に答える
4

また、使用することができますEnumerable.Range

 var indexes = Enumerable.Range(0, list.Count)
                         .Where(index => list[index] == yourValue);
于 2013-03-20T08:03:40.327 に答える