"Невозможно неявно преобразовать тип 'int' в 'int[]'"
Я пытаюсь реализовать сортировку кучи в своем коде, он должен брать числа из файла .txt и сортировать их с помощью сортировки кучи, однако я получаю ошибку,
"Cannot implicitly convert type 'int' to 'int[]'"это появляется на линии связи
int[] arr = value;
Я не знаю, как исправить эту проблему, любая помощь будет оценена, спасибо.
Что я уже пробовал:
Вот этот код:
static void HeapSort(int[] arr, int n) { for (int i = n / 2 - 1; i >= 0; i--) Heapify(arr, n, i); for (int i = n - 1; i >= 0; i--) { int temp = arr[0]; arr[0] = arr[i]; arr[i] = temp; Heapify(arr, i, 0); } } static void Heapify(int[] arr, int n, int i) { int largest = i; int left = 2 * i + 1; int right = 2 * i + 2; if (left < n && arr[left] > arr[largest]) largest = left; if (right < n && arr[right] > arr[largest]) largest = right; if (largest != i) { int swap = arr[i]; arr[i] = arr[largest]; arr[largest] = swap; Heapify(arr, n, largest); } } public static void Main(string[] args) { string userInput; Console.WriteLine("Which Array do you want to sort?"); Console.WriteLine("1. Net_1\n2. Net_2\n3. Net_3"); userInput = Console.ReadLine(); if (userInput == "1") { string[] text = File.ReadAllLines("Net_1\\Net_1.txt"); List<int> values = new List<int>(text.Length); int n = 10, i; foreach (string line in text) { int value; if (int.TryParse(line,out value)) { values.Add(value); } int[] arr = value; for (i = 0; i < n; i++) { Console.Write(arr[i] + " "); } HeapSort(arr, 10); Console.Write("\nSorted Array is: "); for (i = 0; i < n; i++) { Console.Write(arr[i] + " "); } } }
RamiroX
Ваше "значение" - это int, а не массив int. Если вы хотите иметь массив из вашего списка "значения", используйте значения.Метод toArray().