Как вывести имя переменной массива

151
23 марта 2019, 16:30

Имеется массив из переменных

double[] sort = new double[] { temp1, temp2, temp3, temp4, temp5, temp6}

Переменные уже имеют значение. Далее я произвожу сортировку. Какой функцией можно вывести имя первой переменной в массиве после сортировки?

Answer 1

Как вариант: использовать Dictionary, где ключ - значение переменное, значение - имя переменное, пример для вашего примера:

double d1 = 1.1d;
double d2 = 1d;
double d3 = -1.5d;
double d4 = 2d;
Dictionary<double, string> names = new Dictionary<double, string>
{
    [d1] = nameof(d1),
    [d2] = nameof(d2),
    [d3] = nameof(d3),
    [d4] = nameof(d4)
};
double[] sort = new double[] { d1, d2, d3, d4 }.OrderBy(x => x).ToArray();
Console.WriteLine($"First element: {sort[0]}, name: {names[sort[0]]}"); //-1.5 d3
Answer 2

вот такой трюк:

        double[] sort = new double[] { 6, 5, 1, 2, 4, 3 };
        int count = sort.Count();
        int[] index = new int[count];
        for (int i = 0; i < count; i++)
                    index[i] = i; //заполняю массив соответствия  
        Array.Sort(sort, index);
        for (int i = 0;i< count; i++)
        {
            Console.WriteLine($"sort: {sort[i]}; index: {index[i]}");
        }
        Console.ReadLine();

массив index указывает на каком индексе находилось значение
целевой массив сортируется - сохрани его раньше если он нужен

Answer 3

Этого сделать нельзя.

Переменная- это фикция нужная нам для удобного чтения кода. После компиляции в IL-коде не хранятся названия переменных(кроме, например, полей класса.).

READ ALSO
Пользователь отменил действие

Пользователь отменил действие

Еще рас всем доброго времени суток Возникла такая проблема (WPF)Есть обработчик нажатия, он выполняется, то есть запускает файл на установку,...

132
Прикрутить к Laravel accordion

Прикрутить к Laravel accordion

Ребята прошу вашей помощиНужно прикрутить аккордеон

152
Отправить html письмо

Отправить html письмо

Я отправляю html письмо с картинкой

152