Эй, эксперты Linq,
Я просто задал очень похожий вопрос и знаю, что решение, вероятно, СУПЕР легко, но по-прежнему не в состоянии окунуться в голову, как сделать эту довольно простую задачу наиболее эффективным способом с помощью linq.
Мой основной сценарий заключается в том, что у меня есть список значений, например:
Lst1:
a
a
b
b
c
b
a
c
a
И я хочу создать новый список, который будет содержать все индексы из Lst1, где, скажем, value = "a". Итак, в этом примере мы имели бы:
LstIndexes:
0
1
6
8
Теперь я знаю, что могу сделать это с помощью Loops (чего я бы предпочел избежать в пользу Linq), и я даже понял, как это сделать с Linq следующим образом:
LstIndexes= Lst1.Select(Function(item As String, index As Integer) index) _
.Where(Function(index As Integer) Lst1(index) = "a").ToList
Моя задача состоит в том, что она дважды повторяется над списком и поэтому неэффективна.
Как я могу получить свой результат наиболее эффективным способом с помощью Linq?
Спасибо!!!!