Я хочу отсортировать массив двойников, но я хочу сохранить исходные индексы. Я пробовал следующее -
double[] circs = new double[noOfCircs];
Инициализировать циклы со значениями...
int[] loc = Enumerable.Range(0, noOfCircs-1).ToArray();
Array.Sort(circs, loc);
После сортировки я хочу использовать массив loc для дальнейших вычислений. Что я делаю не так?
double[]
со значениями, которые вы хотите отсортировать. Но вы не хотите изменять этот исходный массив, поэтому вы пытаетесь сохранить индексы исходного массива в отсортированном виде вint[]
? Вы пытались создать отсортированную копию исходного массиваdouble[]
, перебрать новый, найти значения в старом массиве и сохранить их индекс в массиве loc? - person Vulpex   schedule 26.11.2018var result = circs.Select((s,i) => new { Value = s, Index = i }).OrderBy(o => o.Value);
это вернет упорядоченную коллекцию (IOrderedEnumerable) анонимного объекта, которую вы можете использовать по своему усмотрению. Это то, что вы хотите? - person SᴇM   schedule 26.11.2018circs.Select((s,i) => new { Value = s, Index = i })
создаст коллекциюIEnumerable<'a>
(где'a
— анонимный тип, содержащийValue
иIndex
), вторая часть сортировка этой новой коллекции поValue
. В конце у вас будетIOrderedEnumerable<'a> result
, который будет содержать упорядоченный массив и индексы ранее. - person SᴇM   schedule 26.11.2018Sort method would be faster than iterating through the lot of them
Что ты хотел этим сказать? Пожалуйста, отредактируйте свой вопрос, добавьте подробности, что вы пытаетесь сделать, что вы сделали, что было не так и каков был ожидаемый результат. - person Renatas M.   schedule 26.11.2018