配列がstring[] weekDays = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" };
で、 's'を含む配列要素のインデックスを探したいとします。どうすればLinqを使ってこれを行うことができますか?Linqを使用してWhere節の後に配列インデックスを選択する方法は?
私はint[] indexOfDaysContainingS = weekDays.Where(day => day.Contains("s")).Select((day, index) => index).ToArray();
を試しましたが、代わりにIEnumberable<string>
のインデックスを取得しているので、0,1,2
が返されます。私がSelect()を最初に置くと、私が持っているものはすべてインデックスであり、その日までにフィルタリングすることはできません。
代わりに1,2,3
を返品するには、何を変更する必要がありますか?
weekDays.Select((day, index) => new { Day = day, Index = index })
.Where(x => x.Day.Contains("s"))
.Select(x => x.Index)
.ToArray();
これが最適であるかどうかわからない。..
私はそれが問題の一部ではありません知っているが、なぜドン」これを行うには、Linqの代わりにforループを使用します。あなたは多くの開発時間を節約できました。 –