Создавайте списки и умножайте - PullRequest
0 голосов
/ 01 ноября 2019

Я хочу преобразовать свои радиометрические значения в секунду (cps) обратно в их значения кэВ.

Обычно (но не всегда) начинается со списка значений 256 cps, считанных из текстового файла и преобразованных вdouble.

List<double> cps = rads.ConvertAll(x => double.Parse(x)).ToList();

Затем мне нужен еще один список того же размера с кэВ для каждого значения. Значения распределены по 0 - 3 МэВ, поэтому каждый элемент этого списка будет умножен на значение

double keV  = 3000 / cps.count();

и должен быть умножен на его индекс в списке. Я думаю, что это можно сделать как

List<double> keVs = cps.ForEach(x => x * (index + 1) * keV);

Но можно ли получить это значение индекса для расчета?

1 Ответ

2 голосов
/ 01 ноября 2019

Кажется, что вы ищете Linq Выберите , который предоставляет индекс, а также значение:

using System.Linq;

...

List<double> keVs = cps
  .Select((x, index) => x * (index + 1) * keV)
  .ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...