C# функция пузырьковой сортировки, возвращающая тип данных, а не результаты проблема с кодом или файл? - PullRequest
0 голосов
/ 09 марта 2020

Очень новый для C# и совершенно новый для C# в коде VS. Я не уверен, есть ли проблема с моим кодом или файлом приложения, в любом случае возвращаемое значение - System.Int32 [], а не фактическое содержимое массива.

Я создал консольный проект - do tnet новая консоль -n "algos"

Я добавил файл решения - do tnet new sln -n "algorythems_solution"

Я добавил проект в решение - do tnet sln algorythems_solution.sln add ./algos/algos.csproj

Для запуска программы я использовал f5 и - do tnet run

using System;

namespace algos
{
    class sortingAlgorythems
    {
        static void Main()
        {
            int[] test = {-4,5,10,8,-10,-6,-4,-2,-5,3,5,-4,-5,-1,1,6,-7,-6,-7,8};
            int[] sorted = bubbleSort(test);
            Console.WriteLine(sorted.ToString());
        }
        public static int[] bubbleSort(int[] array)
        {
            bool isSorted = false;
            int toValue = array.Length - 1;
            int fromValue = 0;
            while (isSorted == false) 
            {
                isSorted = true;
                int cnt = 0;
                for (int i = fromValue; i < toValue; i++) 
                {
                    if (array[i] > array[i+1])
                    {
                        cnt = i;
                        int temp1 = array[i];
                        int temp2 = array[i+1];
                        array[i] = temp2;
                        array[i+1] = temp1;
                        if (isSorted == true)
                        {
                            isSorted = false;
                            if (i > 0)
                            {
                                fromValue = i -1;
                            }
                        }
                    }
                }
                toValue = cnt;
            }
            return array;
        }
    }
}

Любое понимание того, в чем может заключаться моя проблема Будем очень признательны.

Ответы [ 2 ]

2 голосов
/ 09 марта 2020

Вот пример обобщенного c метода расширения. Обратите внимание, что оно должно быть определено в public static class.

public static void WriteToConsole<T>(this IList<T> list)
{
    for(int i = 0; i < list.Count; ++i)
    {
       Console.WriteLine(list[i]);
    }
}

. Может использоваться следующим образом:

int[] arr;
arr.WriteToConsole();
2 голосов
/ 09 марта 2020

Вы неправильно предположили, что делает ToString(). Поведение по умолчанию - просто отобразить тип объекта (хотя для многих типов он переопределяется для отображения чего-то более полезного).

Вот простое решение для вас:

        int[] sorted = bubbleSort(test);
        for(int i = 0; i < sorted.Length; ++i)
        {
           Console.WriteLine($"{i}: {sorted[i]}");
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...